#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);
  }
}