#include <cstdio>
using namespace std;
struct printesa
{
int x,y;
} c[30650];
short int a[177][177],b[250][250],v[225000],vizit[250][250],ok;
int n,m,i,j,x1,x2,y1,y2,dr,st,k,p,x,y,gasit,t;
void castel( int k)
{
int lin,col;
lin=c[k].x;
col=c[k].y;
// printf("%d,%d -\n",lin,col);
//sus
if (lin-1>=1 && v[a[lin-1][col]]==1 && vizit[lin-1][col]==0)
{
//printf("%d,%d -\n",lin,col);
vizit[lin-1][col]=-1;
v[b[lin-1][col]]=1;
gasit++;
dr++;
c[dr].x=lin-1;
c[dr].y=col;
ok=1;
}
//dreapta
if(col+1 <=m && v[a[lin][col+1]]==1 && vizit[lin][col+1]==0)
{
// printf("%d,%d -\n",lin,col);
vizit[lin][col+1]=-1;
v[b[lin][col+1]]=1;
gasit++;
dr++;
c[dr].x=lin;
c[dr].y=col+1;
ok=1;
}
//jos
if (lin+1<=n && v[a[lin+1][col]]==1 && vizit[lin+1][col]==0)
{
//printf("%d,%d -\n",lin,col);
vizit[lin+1][col]=-1;
v[b[lin+1][col]]=1;
gasit++;
dr++;
c[dr].x=lin+1;
c[dr].y=col;
ok=1;
}
//stanga
if(col-1 >=1 && v[a[lin][col-1]]==1 && vizit[lin][col-1]==0)
{
//printf("%d,%d -\n",lin,col);
vizit[lin][col+1]=-1;
v[b[lin][col+1]]=1;
gasit++;
dr++;
c[dr].x=lin;
c[dr].y=col-1;
ok=1;
}
}
int main()
{
freopen ("castel.in","r",stdin);
freopen ("castel.out","w",stdout);
scanf("%d ",&n);
scanf("%d ",&m);
scanf("%d ",&k);
// x=k/m+1;
// y=k%m;
// printf("%d %d\n",x,y);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
scanf("%d ",&a[i][j]);
}
}
p=0;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
p++;
b[i][j]=p;
if(p==k)
{
x1=i;
y1=j;
}
}
}
c[1].x=x1;
c[1].y=y1;
vizit[x1][y1]=-1;
ok=1;
dr=1;
v[b[x1][y1]]=1;
// gasit=1;
while(ok==1)
{
ok=0;
for(i=1;i<=dr;i++)
castel(i);
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(vizit[i][j]==-1)
t++;
// printf("%d ",vizit[i][j]);
}
// printf("\n");
}
for(i=1;i<=12;i++)
{
// printf("%d\n",v[i]);
}
printf("%d",t);
//printf("%d %d\n",x1,y1);
//printf("%d ",b[x1][y1]);
}