#include<bits/stdc++.h>
using namespace std;
inline int rd()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-') f=0;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=x*10+ch-48;
ch=getchar();
}
return f?x:-x;
}
int a[105][105];
int dp[105][20005];
int main()
{
int s=rd(),n=rd(),m=rd();
for(int i=1;i<=s;i++)
for(int j=1;j<=n;j++)
a[j][i]=rd();
for(int i=1;i<=n;i++)
sort(a[i]+1,a[i]+1+s);
int mx=0;
for(int i=1;i<=n;i++)
{
for(int k=m;k>=0;k--)
{
for(int j=1;j<=s;j++)
{
int ss=a[i][j]*2+1;
if(k<ss) break;
dp[i][k]=max(dp[i][k],dp[i-1][k-ss]+i*j);
mx=max(mx,dp[i][k]);
}
}
}
cout<<mx;
return 0;
}