N, D, K = map(int, input().split()) A = list(map(int, input().split())) C = list(map(lambda x: min(int(x), 500), input().split())) INF = 1 << 60 dp = [[-INF] * (K + 1) for _ in range(D + 1)] dp[0][0] = 0 for a, c in zip(A, C): for d in range(D, 0, -1): cum_max = [-INF] * (K + 1) for k in range(K + 1): cum_max[k] = dp[d - 1][k] for k in range(K, 0, -1): cum_max[k - 1] = max(cum_max[k - 1], cum_max[k]) for k in range(K, 0, -1): dp[d][k] = max(dp[d][k], cum_max[max(0, k - c)] + a) ans = dp[D][K] if ans < -10**9: print("No") else: print(ans)