#ifndef LOCAL #include using namespace std; #define debug(...) (void(0)) #else #include "algo/debug.h" #endif void solve() { int N, M, K; cin >> N >> M >> K; vector dp(K + 1, 0); dp[0] = 1; for(int i = 0; i < N; i++) { vector nxt(K + 1, 0); for(int j = 0; j < M; j++) { int a; cin >> a; for(int k = 0; k <= K; k++) if(dp[k]) { if(k + a <= K) nxt[k + a] = true; } } dp.swap(nxt); } int ans = -1; for(int i = 0; i <= K; i++) if(dp[i]) ans = max(ans, i); cout << (ans == -1 ? ans : K - ans) << '\n'; } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int tt = 1; // std::cin >> tt; while (tt--) { solve(); } }