N,M,K = map(int, input().split()) dp = [[False]*(K+1) for i in range(N+1)] dp[0][0] = True cnt = 0 for i in range(N): As = list(map(int, input().split())) cnt += min(As) for j in range(K): if dp[i][j]: for a in As: if a + j > K: continue dp[i+1][a+j] = dp[i][j] flg = False # print(dp[i+1]) if cnt > K: print(-1) exit() ans = 0 for i in range(K,-1,-1): if dp[N][i]: ans = i break print(K-ans)