#include using namespace std; int main() { //入力 int N,M,K; cin >> N >> M >> K; vector> A(N,vector(M)); for(int i = 0; i < N; ++i) { for(int j = 0; j < M; ++j) { cin >> A[i][j]; } } //dp、O(NMK) vector dp(K+1,0); dp[0] = 1; for(int i = 0; i < N; ++i){ vector tmp(K+1,0); for(int j = 0; j < M; ++j) { for(int k = 0; k + A[i][j] <= K; ++k) { if(dp[k]) tmp[k+A[i][j]] = 1; } } dp = tmp; } //最大値探索 O(K) for(int i = K; 0 <= i; --i) { if(dp[i]){ cout << K - i << endl; return 0; } } //ないとき cout << -1 << endl; return 0; }