#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef string::const_iterator State; #define Ma_PI 3.141592653589793 #define eps 1e-5 #define LONG_INF 2000000000000000000LL #define GOLD 1.61803398874989484820458 #define MAX_MOD 1000000007LL #define GYAKU 500000004LL #define MOD 998244353LL #define seg_size 262144*2 #define REP(a,b) for(long long a = 0;a < b;++a) int can_use[20][600]; int main() { int n, m, k; cin >> n >> m >> k; can_use[0][k] = 1; REP(i, n) { vector inputs; REP(q, m) { int a; cin >> a; inputs.push_back(a); } REP(j, k + 1) { if (can_use[i][j] == 0) continue; REP(t, inputs.size()) { int target = j - inputs[t]; if (target >= 0) { can_use[i + 1][target] = 1; } } } } REP(i, k + 1) { if (can_use[n][i]) { cout << i << endl; return 0; } } cout << -1 << endl; }