3328 - 购买甜甜圈
Description

z想去蛋糕店买甜甜圈。

z居住的城镇由 HW 列的网格状区域构成,每个区域是道路或墙壁。  

以下,将从上往下第 i 行(1 \leq i \leq H)、从左往右第 j 列(1 \leq j \leq W)的区域表示为区域 (i, j)。  

各区域的信息由 H 个长度为 W 的字符串 S_1, S_2, \ldots, S_H 给出。具体来说,当 S_i 的第 j 个字符(1 \leq i \leq H1 \leq j \leq W)为 `.` 时,区域 (i, j) 是道路;当为 `#` 时,区域 (i, j) 是墙壁。

z可以按任意顺序重复执行以下两种操作:

- 移动到上下左右相邻的、位于城镇内且为道路的区域。

- 选择一个上下左右方向,进行**前踢**。  

  当小z进行前踢时,可以将当前区域在该方向上 **前 1 格** 和 **前 2 格** 的区域(如果它们是墙壁)变为道路。  

  注意:即使前 1 格或前 2 格位于城镇外,仍然可以进行前踢操作,但城镇外的区域不会发生变化。

z最初位于区域 (A, B),想要到达位于区域 (C, D) 的蛋糕店。  

保证小z初始所在的区域及蛋糕店所在的区域是道路。  

请计算小z到达蛋糕店所需的最小**前踢次数**。


Input

第一行两个数字 HW 列表示地图的大小;

接下来 HW 列字符,表示地图的内容;

子厚四个数字A,B,C,D,表示地图的起点和蛋糕店的地址;

Output

输出小z到达蛋糕店所需的最小**前踢次数**。

Examples

Input

10 10
..........
#########.
#.......#.
#..####.#.
##....#.#.
#####.#.#.
.##.#.#.#.
###.#.#.#.
###.#.#.#.
#.....#...
1 1 7 1

Output

1

Input

1 3
.#.
1 1 1 3

Output

1

Input

20 20
####################
##...##....###...###
#.....#.....#.....##
#..#..#..#..#..#..##
#..#..#....##..#####
#.....#.....#..#####
#.....#..#..#..#..##
#..#..#.....#.....##
#..#..#....###...###
####################
####################
##..#..##...###...##
##..#..#.....#.....#
##..#..#..#..#..#..#
##..#..#..#..#..#..#
##.....#..#..#..#..#
###....#..#..#..#..#
#####..#.....#.....#
#####..##...###...##
####################
3 3 18 18

Output

3
Hint

- 1 \leq H \leq 1000

- 1 \leq W \leq 1000

- S_i 是仅由 `.` 和 `#` 组成的长度为 W 的字符串

- 1 \leq A, C \leq H

- 1 \leq B, D \leq W

- (A, B) \neq (C, D)

- H, W, A, B, C, D 均为整数

- 小z初始所在的区域及蛋糕店所在的区域保证是道路

样例解释 1

z最初位于区域 (1, 1)。通过反复移动到道路区域,可以到达区域 (7, 4)。在区域 (7, 4) 向左方向进行前踢后,区域 (7, 3)(7, 2) 会从墙壁变为道路。之后,通过反复移动(包括新变为道路的区域)即可到达位于区域 (7, 1) 的蛋糕店。此时前踢次数为 1 次,且无法在不使用前踢的情况下到达蛋糕店,因此输出 1

样例解释 2

前踢操作可能影响包含蛋糕店所在区域的区画,但蛋糕店所在区域原本就是道路,因此不会发生变化。特别是前踢操作不会破坏蛋糕店。


题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 40
通过次数 6