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