N, D, K = map(int, input().split()) A = list(map(int, input().split())) C = list(map(int, input().split())) INF = 10**18 dp = [[[-INF]*(K+1) for _ in range(D+1)] for _ in range(N+1)] dp[0][0][0] = 0 for i in range(N): for j in range(D+1): for k in range(K+1): if dp[i][j][k] == -INF: continue dp[i+1][j][k] = max(dp[i+1][j][k], dp[i][j][k]) if j < D: dp[i+1][j+1][min(k+C[i], K)] = max(dp[i+1][j+1][min(k+C[i], K)], dp[i][j][k]+A[i]) if dp[-1][-1][-1] != -INF: print(dp[-1][-1][-1]) else: print("No")