#include <bits/stdc++.h>
using namespace std;
int a[105][105], dp[1005];
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
int T, N, M;
scanf("%d %d %d", &T, &N, &M);
for (int t = 1; t <= T; t++) {
for (int i = 1; i <= N; i++) {
scanf("%d", &a[t][i]);
}
}
for (int t = 1; t < T; t++) {
for (int i = 1; i <= N; i++) {
for (int j = M; j >= 0; j--) {
for (int k = 0; k * a[t][i] <= j; k++) {
dp[j] = max(dp[j], dp[j - k * a[t][i]] + k * (a[t + 1][i] - a[t][i]));
}
}
}
M += dp[M];
memset(dp, 0, sizeof(dp));
}
printf("%d", M);
return 0;
}