#include <bits/stdc++.h>
using namespace std;
int n,T,temp,V[1005],f[10005],a[105][105];
void solve(int day1, int day2) {
memset(f,0,sizeof(int)*(V[day1]+1));
for(int i=1;i<=n;i++) {
int c=a[day1][i],w=a[day2][i];
for(int j=c;j<=V[day1];j++) {
f[j]=max(f[j],f[j-c]+w);
}
}
int tmp=0;
for (int i=0;i<=V[day1];i++){
tmp=max(tmp,f[i]+V[day1]-i);
}
V[day2]=max(V[day2],tmp);
}
int main(){
cin>>T>>n>>V[0];
for(int i=1;i<=T;i++) {
for(int j=1;j<=n;j++) {
cin>>a[i][j];
}
}
for(int i=1;i<=T;i++) {
V[i]=max(V[i],V[i-1]);
for(int j=i+1;j<=T;j++) {
solve(i,j);
}
}
cout<<V[T];
return 0;
}