import sys
from collections import deque
r , c = map(int,input().split())
sx,sy,ex,ey = map(int,input().split())
grid = []
for _ in range(r):
grid.append(list(input()))
# print(grid)
if grid[sx-1][sy-1] == '*' or grid[ex-1][ey-1] == '*':
print('-1')
exit()
dirs = [(1,0), (-1,0), (0,1), (0,-1)]
# BFS
q = deque()
q.append((sx-1, sy-1))
grid[sx-1][sy-1] = '*' # 标记走过
dist = [[0]*c for _ in range(r)] # 记录到起点的距离
while q:
x,y = q.popleft()
if x == ex-1 and y==ey-1:
print(dist[x][y])
exit()
for dx, dy in dirs:
nx, ny = x+dx, y+dy
if 0<=nx<r and 0<=ny<c and grid[nx][ny]=='.':
q.append((nx,ny))
dist[nx][ny] = dist[x][y]+1
grid[nx][ny] = '*'
print('-1')
exit()