#include<bits/stdc++.h>
#define R register int
using namespace std;
const int N=105;
inline int read()
{
int s=0;char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) s=(s<<3)+(s<<1)+(c^48),c=getchar();
return s;
}
int cas[N][N],ed[N],co[N][N],va[N][N],sum[N],dp[20005],s,n,m;
int main()
{
s=read();n=read();m=read();
for(R i=1;i<=s;i++)
for(R j=1;j<=n;j++) cas[j][i]=read();
for(R i=1;i<=n;i++)
{
sort(cas[i]+1,cas[i]+1+s);
for(R j=1;j<=s&&(cas[i][j]<<1|1)<=m;j++)
if(cas[i][j]!=cas[i][j+1]) co[i][++ed[i]]=cas[i][j]<<1|1,va[i][ed[i]]=i*j;
sum[i]=sum[i-1]+co[i][ed[i]];
}
for(R k=1;k<=n;k++)
for(R j=sum[k]<m?sum[k]:m;j>=co[k][1];j--)
for(R i=1;i<=ed[k]&&j-co[k][i]>=0;i++)
if(dp[j]<dp[j-co[k][i]]+va[k][i]) dp[j]=dp[j-co[k][i]]+va[k][i];
for(R i=1;i<=m;i++) dp[m]=max(dp[m],dp[i]);
printf("%d",dp[m]);return 0;
}