type
aa=record
x,y,d:longint;
end;
var
m,n,k,i,j,t,ans,tot,x,y,d:longint;
a:array[0..2000] of aa;
procedure qs(l,r:longint);
var
i,j,mid:longint;
t:aa;
begin
i:=l;
j:=r;
mid:=a[(l+r) div 2].d;
while i<=j do
begin
while a[i].d>mid do inc(i);
while a[j].d<mid do dec(j);
if i<=j then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
inc(i);
dec(j);
end;
end;
if l<j then qs(l,j);
if i<r then qs(i,r);
end;
begin
readln(m,n,k);
for i:=1 to m do
begin
for j:=1 to n do
begin
read(d);
if d<>0 then
begin
inc(tot);
a[tot].d:=d;
a[tot].x:=i;
a[tot].y:=j;
end;
end;
readln;
end;
qs(1,tot);
k:=k-2;
t:=0;
x:=1;
y:=a[1].y;
for i:=1 to tot do
begin
t:=t+1+abs(a[i].x-x)+abs(a[i].y-y)+a[i].x-1;
if t<=k then
begin
inc(ans,a[i].d);
x:=a[i].x;
y:=a[i].y;
end;
t:=t-(a[i].x-1);
end;
writeln(ans);
end.
/**************************************************************
Problem: 2245
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/