var
h,w,sx,sy,gx,gy,nx,ny,tx,ty,rr,L,R:Longint;
s:array[1..50]of String[50];
x,y:array[0..3000]of Longint;
d:array[1..50,1..50]of Longint;
dx:array[1..4]of Longint=(0,1,0,-1);
dy:array[1..4]of Longint=(1,0,-1,0);
begin
readln(h,w,sx,sy,gx,gy);
for nx:=1 to h do begin
readln(s[nx]);
for ny:=1 to w do d[nx,ny]:=10000000;
end;
d[sx,sy]:=0;
x[0]:=sx;
y[0]:=sy;
inc(R);
while L<R do begin
nx:=x[L];
ny:=y[L];
inc(L);
for rr:=1 to 4 do begin
tx:=nx+dx[rr];
ty:=ny+dy[rr];
if(s[tx,ty]='#')or(d[tx,ty]<=d[nx,ny]+1)then continue;
d[tx,ty]:=d[nx,ny]+1;
x[R]:=tx;
y[R]:=ty;
inc(R);
end;
end;
writeln(d[gx,gy]);
end.