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