#include<bits/stdc++.h>
using namespace std;
int v[105][105],dp[1005],maxa=INT_MIN;//v[i][j]第i天第j样纪念品的价格,dp动规
int t,m,n;
int main(){
scanf("%d %d %d",&t,&n,&m);//输入
for(int i=1;i<=t;i++){
for(int j=1;j<=n;j++){
cin>>v[i][j];
}
}
int ans=m;//开始有m块钱
for(int i=1;i<t;i++){
memset(dp,0,sizeof(dp));//清空dp
for(int j=1;j<=n;j++){
dp[ans]=ans;//动规边界
for(int k=ans;k>=v[i][j];k--){
dp[k-v[i][j]]=max(dp[k-v[i][j]],dp[k]+v[i+1][j]-v[i][j]);//状态转移方程
}
}
for(int i=0;i<=ans;i++){
maxa=max(maxa,dp[i]);//求最大值
}
ans=maxa;
}
cout<<ans;
return 0;
}