import sys
n,m=map(int,input().split())
x1,y1,x2,y2=map(int,input().split())
di=[(1,0),(-1,0),(0,1),(0,-1)]
g=[[0]*m for _ in range(n)]
ans=-1
t=1
for i in range(n):
a=input()
for j,x in enumerate(a):
if x=='*':
g[i][j]=1
if g[x2-1][y2-1]==1: #终点是障碍物
t=0
a=[[x1-1,y1-1,0]]
g[x1-1][y1-1]=1
while a and ans==-1 and t:
q=a.pop(0)
# print(q)
for dx,dy in di:
# print(q[0]+dx,q[1]+dy)
if 0<=q[0]+dx<n and 0<=q[1]+dy<m:
if q[0]+dx==x2-1 and q[1]+dy==y2-1:
ans=q[2]+1
break
if g[q[0]+dx][q[1]+dy]==0:
a.append([q[0]+dx,q[1]+dy,q[2]+1])
g[q[0]+dx][q[1]+dy]=1
# else:
# # print(-1)
print(ans)