var f,g:text;
v:array[0..60,0..60] of longint;
ok:array[0..60,0..60] of boolean;
i,j,n,m,min,drum,x,y,xx,yy,k:longint;
procedure lee(x,y:integer);
begin
ok[x,y]:=false;
inc(drum);
if (x=xx) and (y=yy) then begin
if min>drum then min:=drum;
end
else begin
if ok[x+1,y] then if v[x+1,y]<>0 then lee(x+1,y);
if ok[x-1,y] then if v[x-1,y]<>0 then lee(x-1,y);
if ok[x,y+1] then if v[x,y+1]<>0 then lee(x,y+1);
if ok[x,y-1] then if v[x,y-1]<>0 then lee(x,y-1);
end;
dec(drum);
ok[x,y]:=true;
end;
begin
assign (f,'kdrum.in');reset(f);
assign (g,'kdrum.out');rewrite (g);
readln (f,n,m,k);
readln (f,x,y,xx,yy);
for i:=1 to n do
for j:=1 to m do
read (f,v[i,j]);
for i:=1 to n do begin
v[i,0]:=0;
v[i,m+1]:=0;
end;
for j:=1 to m do begin
v[0,j]:=0;
v[n+1,j]:=0;
end;
drum:=0;
min:=maxint;
fillchar(ok,sizeof(ok),true);
lee (x,y);
writeln (g,min);
close(f);close(g);
end.