#include #include #include #include using namespace std; const int N = 105; int n, m, k, w[N][N], dp[N][N][N]; int main() { while (scanf("%d%d%d", &n, &m, &k) != EOF) { memset(dp, 0, sizeof(dp)); for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) scanf("%d", &w[i][j]); dp[1][1][0] = 1; if (w[1][1] <= k) dp[1][1][w[1][1]] = 1; for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) for (int l = 0; l <= k; ++l) { if (i > 1) { if (dp[i - 1][j][l]) { if (l + w[i][j] <= k) dp[i][j][l + w[i][j]] = 1; dp[i][j][l] = 1; } } if (j > 1) { if (dp[i][j - 1][l]) { if (l + w[i][j] <= k) dp[i][j][l + w[i][j]] = 1; dp[i][j][l] = 1; } } } bool f = 0; for (int l = k; l >= 0; --l) { if (dp[n][m][l]) { printf("%d\n", l); f = 1; break; } } if (!f) puts("0"); } return 0; }