program castel;
type sir=array[1..150,1..150]of integer;
sir1=array[1..22500,1..2]of integer;
sir2=array[1..22500]of boolean;
sir3=array[1..150,1..150]of boolean;
var a,w:sir;
m,n,k,t:integer;
e:sir1;
cheie:sir2;
vizitat:sir3;
procedure citire;
var i,j,q:integer;
begin
assign(input,'castel.in');
reset(input);
readln(m,n,k);
q:=0;
for i:=1 to m do
for j:=1 to n do
begin
read(a[i,j]);
inc(q);
w[i,j]:=q;
if q=k then
begin
e[1,1]:=i;
e[1,2]:=j;
end;
end;
close(input);
end;
procedure prelucrare;
var i,q,r,b,c:integer;
gasit:boolean;
begin
cheie[a[e[1,1],e[1,2]]]:=true;
vizitat[e[1,1],e[1,2]]:=true;
gasit:=true;
r:=1;
t:=1;
repeat
q:=r;
gasit:=true;
for i:=1 to q do
begin
if (e[i,1]>1) and //(w[e[i-1,1],e[i,2]]<>0) and
(cheie[a[e[i,1]-1,e[i,2]]]) then
begin
if vizitat[e[i,1]-1,e[i,2]]=false then
begin
inc(t);
vizitat[e[i,1]-1,e[i,2]]:=true;
gasit:=false;
inc(r);
e[r,1]:=e[i,1]-1;
e[r,2]:=e[i,2];
end;
cheie[w[e[i,1]-1,e[i,2]]]:=true;
end;
if (e[i,2]>1) and //(w[e[i,1],e[i-1,2]]<>0) and
(cheie[a[e[i,1],e[i,2]-1]]) then
begin
if (vizitat[e[i,1],e[i,2]-1]=false) then
begin
inc(t);
vizitat[e[i,1],e[i,2]-1]:=true;
gasit:=false;
inc(r);
e[r,1]:=e[i,1];
e[r,2]:=e[i,2]-1;
end;
cheie[w[e[i,1],e[i,2]-1]]:=true;
end;
if (e[i,1]<m) and //(w[e[i+1,1],e[i,2]]<>0) and
(cheie[a[e[i,1]+1,e[i,2]]]) then
begin
if (vizitat[e[i,1]+1,e[i,2]]=false) then
begin
inc(t);
vizitat[e[i,1]+1,e[i,2]]:=true;
gasit:=false;
inc(r);
e[r,1]:=e[i,1]+1;
e[r,2]:=e[i,2];
end;
cheie[w[e[i,1]+1,e[i,2]]]:=true;
end;
if (e[i,2]<n) and //(w[e[i,1],e[i+1,2]]<>0) and
(cheie[a[e[i,1],e[i,2]+1]]) then
begin
if (vizitat[e[i,1],e[i,2]+1]=false) then
begin
inc(t);
gasit:=false;
vizitat[e[i,1],e[i,2]+1]:=true;
inc(r);
e[r,1]:=e[i,1];
e[r,2]:=e[i,2]+1;
end;
cheie[w[e[i,1],e[i,2]+1]]:=true;
end;
end;
until gasit=true;
end;
procedure scriere;
begin
assign(output,'castel.out');
rewrite(output);
write(t);
close(output);
end;
begin
citire;
prelucrare;
scriere;
end.