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)