思路:网格图bfs板子题。没太多好说的,纯板子

代码:

import sys
from collections import deque

input = lambda: sys.stdin.readline().strip()

import math
inf = 10 ** 18

def I():
    return input()

def II():
    return int(input())

def MII():
    return map(int, input().split())

def LI():
    return input().split()

def LII():
    return list(map(int, input().split()))

def LFI():
    return list(map(float, input().split()))

fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))

'''

'''

def solve():
    n, m = MII()
    xs, ys, xt, yt = LII()
    xs -= 1; ys -= 1; xt -= 1; yt -= 1
    g = [list(I()) for _ in range(n)]

    q = deque([(xs, ys)])
    dis = -1
    while q:
        dis += 1
        for _ in range(len(q)):
            i, j = q.popleft()
            if i == xt and j == yt:
                print(dis)
                return
            for x, y in (i + 1, j), (i - 1, j), (i, j + 1), (i, j - 1):
                if 0 <= x < n and 0 <= y < m and g[x][y] == '.':
                    g[x][y] = '*'
                    q.append((x, y))
    print(-1)

t = 1
# t = II()
for _ in range(t):
    solve()