#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<set>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<iostream>
#include<string>
#include<cmath>
#define inf 1e9
#define N 1010
#define FOR(i,a,b) for(i=(a);i<=(b);i++)
#define ROF(i,a,b) for(i=(a);i>=(b);i--)
typedef long long LL;
using namespace std;
int a[N][3],n,m,K,f[N][N],g[N][N][5];
int max3(int a,int b,int c)
{
int t=a>b?a:b;
return t>c?t:c;
}
int main()
{
scanf("%d%d%d",&n,&m,&K);int i,j,k,k1,k2;
FOR(i,1,n) FOR(j,1,m) scanf("%d",&a[i][j]);
FOR(i,0,n) FOR(j,0,k) f[i][j]=-inf;
if (m==1)
{
f[0][0]=0;
FOR(i,1,n)
FOR(j,0,min(i,K))
{
if (j==0) f[i][j]=0;else f[i][j]=max(f[i][j],f[i-1][j]+a[i][1]);
if (j==0) continue;
FOR(k,1,i)
{
f[i][j]=max(f[i][j],f[i-k][j-1]+a[i][1]);
}
}
int Max=0;
FOR(i,1,n) if (f[i][K]>Max) Max=f[i][K];
printf("%d\n",Max);
}else
{
FOR(i,0,n) FOR(j,0,K) FOR(k,0,4) g[i][j][k]=-inf;
g[0][0][0]=0;
FOR(i,1,n)
FOR(j,0,K)
{
if (j==0) {g[i][j][0]=0;continue;}
FOR(k1,0,4) FOR(k2,0,4)
{
if (k1==0)
{
if (k2==1) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][2]);
if (k2==2) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]);
if (k2==3) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]+a[i][2]);
if (k2==4) if (j>1) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-2][k1]+a[i][1]+a[i][2]);
}
if (k1==1)
{
if (k2==1) g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j-1][k1],g[i-1][j][k1])+a[i][2]);
if (k2==2) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]);
if (k2==3) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]+a[i][2]);
if (k2==4) if (j>1)
g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j-2][k1],g[i-1][j-1][k1])+a[i][1]+a[i][2]);
else g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]+a[i][2]);
}
if (k1==2)
{
if (k2==1) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][2]);
if (k2==2) g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j-1][k1],g[i-1][j][k1])+a[i][1]);
if (k2==3) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]+a[i][2]);
if (k2==4) if (j>1)
g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j-2][k1],g[i-1][j-1][k1])+a[i][1]+a[i][2]);
else g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]+a[i][2]);
}
if (k1==3)
{
if (k2==1) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][2]);
if (k2==2) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]);
if (k2==3) g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j][k2],g[i-1][j-1][k2])+a[i][1]+a[i][2]);
if (k2==4) if (j>1) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-2][k1]+a[i][1]+a[i][2]);
}
if (k1==4)
{
if (k2==1) g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j-1][k1],g[i-1][j][k1])+a[i][2]);
if (k2==2) g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j-1][k1],g[i-1][j][k1])+a[i][1]);
if (k2==3) g[i][j][k2]=max(g[i][j][k2],g[i-1][j-1][k1]+a[i][1]+a[i][2]);
if (k2==4) if (j>1)
g[i][j][k2]=max(g[i][j][k2],max3(g[i-1][j-2][k1],g[i-1][j-1][k1],g[i-1][j][k1])+a[i][1]+a[i][2]);
else g[i][j][k2]=max(g[i][j][k2],max(g[i-1][j-1][k1],g[i-1][j][k1])+a[i][1]+a[i][2]);
}
if (k2==0) g[i][j][k2]=max(g[i][j][k2],g[i-1][j][k1]);
}
}
int Max=0;
FOR(i,1,n) FOR(j,0,4)
if (g[i][K][j]>Max) Max=g[i][K][j];
printf("%d\n",Max);
}
}