#include<bits/stdc++.h>
#define MAXN 35
using namespace std;
struct node
{
int x,y,s;
};
node a[MAXN*MAXN];
int m,n,k,ans,sx,sy,fx,fy,cnt,tim,b[MAXN][MAXN];
inline int read()
{
int f=1,k=0;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')
{
f=-1;
}
c=getchar();
}
while(c>='0'&&c<='9')
{
k=(k<<1)+(k<<3)+(c^48);
c=getchar();
}
return f*k;
}
bool cmp(node a,node b)
{
return a.s>b.s;
}
int main()
{
m=read(),n=read(),k=read();
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
b[i][j]=read();
if(b[i][j]>0)
{
a[++cnt].x=i;
a[cnt].y=j;
a[cnt].s=b[i][j];
}
}
}
sort(a+1,a+n+1,cmp);
sx=1,sy=a[1].y;
k--;
for(int i=1;i<=cnt;i++)
{
tim=0;
fx=a[i].x,fy=a[i].y;
tim=abs(fx-sx)+abs(fy-sy);
k-=tim;
k--;
if(k>=fx)
{
ans+=b[fx][fy];
sx=fx,sy=fy;
}
else
{
printf("%d",ans);
return 0;
}
}
printf("%d",ans);
return 0;
}