#include<bits/stdc++.h>
using namespace std;
const int N=30;
int n,m,time_peanut;
int get[N][N];
struct Point{
int x;
int y;
};
Point Max(){
Point max={0,0};
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(get[max.x][max.y]<get[i][j])
max={i,j};
return max;
}
int main(){
cin>>n>>m>>time_peanut;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>get[i][j];
Point t=Max();
if(time_peanut<t.x*2+1) cout<<"0";
else{
int res=get[t.x][t.y];
get[t.x][t.y]=0;
time_peanut-=t.x+1;
while(true){
Point r=Max();
if(!get[r.x][r.y]) break;
int d=abs(r.x-t.x)+abs(r.y-t.y);
if(time_peanut<d+1+t.x) break;
res+=get[r.x][r.y];
get[r.x][r.y]=0;
time_peanut-=d+1;
t=r;
}
cout<<res<<"\n";
}
return 0;
}
//6 7 20
//0 0 0 0 0 0 0
//0 0 0 0 13 0 0
//0 0 0 0 0 0 7
//0 15 0 0 0 0 0
//0 0 0 9 0 0 0
//0 0 0 0 0 0 0
//%%%%%%%%%%%%%%%%