Problem:


Score : 400 points

Problem Statement

A maze is composed of a grid of H \times W squares - H vertical, W horizontal.

The square at the i-th row from the top and the j-th column from the left - (i,j) - is a wall if S_{ij} is # and a road if S_{ij} is ..

There is a magician in (C_h,C_w). He can do the following two kinds of moves:

Move A: Walk to a road square that is vertically or horizontally adjacent to the square he is currently in.

Move B: Use magic to warp himself to a road square in the 5\times 5 area centered at the square he is currently in.

In either case, he cannot go out of the maze.

At least how many times does he need to use the magic to reach (D_h, D_w)?

Constraints

1 \leq H,W \leq 10^3

1 \leq C_h,D_h \leq H

1 \leq C_w,D_w \leq W

S_{ij} is # or ..

S_{C_h C_w} and S_{D_h D_w} are ..

(C_h,C_w) \neq (D_h,D_w)

Input

Input is given from Standard Input in the following format:

H W
C_h C_w
D_h D_w
S_{11}\ldots S_{1W}
\vdots
S_{H1}\ldots S_{HW}

Output

Print the minimum number of times the magician needs to use the magic. If he cannot reach (D_h,D_w), print -1 instead.

Sample Input 1

4 4
1 1
4 4
..#.
..#.
.#..
.#..

Sample Output 1

1

For example, by walking to (2,2) and then using the magic to travel to (4,4), just one use of magic is enough.

Note that he cannot walk diagonally.

Sample Input 2

4 4
1 4
4 1
.##.
####
####
.##.

Sample Output 2

-1

He cannot move from there.

Sample Input 3

4 4
2 2
3 3
....
....
....
....

Sample Output 3

0

No use of magic is needed.

Sample Input 4

4 5
1 2
2 5
#.###
####.
#..##
#..##

Sample Output 4

2



Sample input:
4 4
1 1
4 4
..#.
..#.
.#..
.#..


Sample output:
1

Submission status: Time Limit Exceeded

Solution code:
# compiled by pythran
"""
#pythran export main2()
import numpy as np
i4 = np.int32
i8 = np.int64

INF = 1000000000


def solve(a, ch, cw):
    sh1 = []
    sw1 = []
    sh2 = []
    sw2 = []

    dis = 0
    a[ch, cw] = dis
    sh1.append(ch)
    sw1.append(cw)

    while True:
        while len(sh1) > 0:
            h = sh1.pop()
            w = sw1.pop()
            for i in range(-2, 3):
                for j in range(-2, 3):
                    if ((i == 1 or i == -1) and j == 0) or (i == 0 and (j == 1 or j == -1)):
                        if a[h + i, w + j] > dis:
                            a[h + i, w + j] = dis
                            sh1.append(h + i)
                            sw1.append(w + j)
                    else:
                        if a[h + i, w + j] > dis + 1:
                            a[h + i, w + j] = dis + 1
                            sh2.append(h + i)
                            sw2.append(w + j)

        dis += 1
        for h, w in zip(sh2, sw2):
            if a[h, w] == dis:
                sh1.append(h)
                sw1.append(w)
        del sh2[:]
        del sw2[:]

        if len(sh1) == 0:
            break


def main(in_file):
    stdin = open(in_file)
    H, W = [int(x) for x in stdin.readline().split()]
    ch, cw = [int(x) for x in stdin.readline().split()]
    dh, dw = [int(x) for x in stdin.readline().split()]
    a = np.empty((H + 4, W + 4), i8)
    for i in range(H + 4):
        for j in range(W + 4):
            a[i, j] = -1
    t = stdin.read()
    m = 0
    for i in range(2, H + 2):
        for j in range(2, W + 3):
            if ord(t[m]) == 46:
                a[i, j] = INF
            m += 1
    solve(a, ch + 1, cw + 1)
    ans = a[dh + 1, dw + 1]
    if ans == INF:
        print(-1)
    else:
        print(ans)


def main2():
    main('/dev/stdin')

"""
import os, sys
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
if len(sys.argv) == 1:
    import subprocess
    if p == "":
        pymain = "./" + pymain
    subprocess.call(pymain)
else:
    import gzip, base64, stat
    gz = b'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'
    bin = gzip.decompress(base64.b64decode(gz))
    with open(pymain, "wb") as f:
        f.write(bin)
    os.chmod(pymain, 0o775)