#538. 小明的游戏

小明的游戏

小明最近喜欢玩一个游戏。

给定一个 n×mn\times m 的棋盘,上面有两种格子 #@ 。游戏的规则很简单:给定一个起始位置和一个目标位置,小明每一步能向上,下,左,右四个方向移动一格。如果移动到同一类型的格子,则费用是 00 ,否则费用是 11

请编程计算从起始位置移动到目标位置的最小花费。

输入格式

输入文件有多组数据。

输入第一行包含两个整数 nnmm ,分别表示棋盘的行数和列数。

输入接下来的 nn 行,每一行有 mm 个格子(使用 # 或者 @ 表示)。

输入接下来一行有四个整数 x1x1 , y1y1 , x2x2 , y2y2 ,分别为起始位置和目标位置。

当输入 nnmm 均为 00 时,表示输入结束。

输出格式

对于每组数据,输出从起始位置到目标位置的最小花费。每一组数据独占一行。

样例

样例输入

2 2
@#
#@
0 0 1 1
2 2
@@
@#
0 1 1 0
0 0

样例输出

2
0

数据范围与提示

  • 对于 2020 \\% 的数据满足: 1n,m101 \le n, m \le 10
  • 对于 4040 \\% 的数据满足: 1n,m3001 \le n, m \le 300
  • 对于 100100 \\% 的数据满足: 1n,m5001 \le n, m \le 500
  • 时间限制:1000ms1000\mathrm{ms}
  • 空间限制:128000KB128000\mathrm{KB}