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)] dp[0][0] = 0 for i in range(N): ndp = [[-INF]*(K+1) for _ in range(D+1)] for j in range(D+1): for k in range(K+1): if dp[j][k] == -INF: continue ndp[j][k] = max(ndp[j][k], dp[j][k]) if j < D: ndp[j+1][min(k+C[i], K)] = max(ndp[j+1][min(k+C[i], K)], dp[j][k]+A[i]) dp = [d[:] for d in ndp] if dp[-1][-1] != -INF: print(dp[-1][-1]) else: print("No")