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)