#include using namespace std; const int N = 1010, M = 10010; int t, n, m; int f[M]; int w[N][N]; int main() { // 加快读入 ios::sync_with_stdio(false), cin.tie(0); cin >> t >> n >> m; for (int i = 1; i <= t; i++) for (int j = 1; j <= n; j++) cin >> w[i][j]; for (int i = 1; i < t; i++) { // t-1轮背包 memset(f, 0, sizeof f); for (int j = 1; j <= n; j++) if (w[i + 1][j] > w[i][j]) // 优化:只有在价值为正数时才会考虑使用该物品 for (int k = w[i][j]; k <= m; k++) f[k] = max(f[k], f[k - w[i][j]] + w[i + 1][j] - w[i][j]); m += f[m]; } printf("%d\n", m); return 0; }