N,D,K = map(int,input().split()) A = [int(i) for i in input().split()] C = [int(i) for i in input().split()] min_value = -10**18 dp = [[min_value]*(K+1) for j in range(D+1)] next_dp = [[min_value]*(K+1) for j in range(D+1)] dp[0][0] = 0 for i in range(N): for li in next_dp: li[:] = min_value for j in range(D-1,-1,-1): for k in range(K,-1,-1): if dp[j][k] != min_value: index = min(K,k+C[i]) next_dp[j+1][index] = max(next_dp[j+1][index],dp[j][k]+A[i]) dp,next_dp = next_dp,dp ans = dp[D][K] if ans==min_value: print("No") else: print(ans)