#include #define rep(i, n) for (int i = 0; i < (n); i++) #define repr(i, n) for (int i = (n) - 1; i >= 0; i--) #define rep2(i, l, r) for (int i = (l); i < (r); i++) #define rep2r(i, l, r) for (int i = (r) - 1; i >= (l); i--) #define range(a) a.begin(), a.end() using namespace std; using ll = long long; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(15); int N, M, K; cin >> N >> M >> K; vector> A(N, vector(M)); rep(i, N) rep(j, M) cin >> A[i][j]; vector dp0(K + 1); dp0[0] = true; rep(i, N) { vector dp1(K + 1); rep(j, K + 1) rep(k, M) if (dp0[j] && j + A[i][k] <= K) { dp1[j + A[i][k]] = true; } dp0 = dp1; } repr(i, K + 1) if (dp0[i]) { cout << K - i << endl; return 0; } cout << -1 << endl; }