#include using namespace std; #define rep(i,n) for(int i = 0; i < (n);i++) #define sz(x) int(x.size()) typedef long long ll; typedef pair P; int n, m, k; /* int dfs(int i, int now){ if (now > k) return -1; if (i == n) return now; int ret = -1; for (auto e : a[i]) { int t = dfs(i+1,now + e); if (t == -1) break; ret = max(ret,t); } return ret; } */ int main(){ cin >> n >> m >> k; vector> a(n,vector(m)); rep(i,n) rep(j,m) cin >> a[i][j]; vector> dp(n+1,vector(k+1)); dp[0][0] = 1; rep(i,n){ rep(j,m){ for (int c = 0; c + a[i][j] <= k; c++) { if (dp[i][c]) dp[i+1][c+a[i][j]] = 1; } } } for (int i = k; i >= 0; i--) { if (dp[n][i]) { cout << k - i << endl; return 0; } } cout << -1 << endl; return 0; }