N, D, K = map(int, input().split()) A = list(map(int, input().split())) C = list(map(int, input().split())) inf = 10 ** 18 pre = [[-inf] * (K + 1) for _ in range(D + 1)] pre[0][0] = 0 for a, c in zip(A, C): dp = [[-inf] * (K + 1) for _ in range(D + 1)] for d in range(D + 1): for k in range(K + 1): if pre[d][k] == -inf: continue dp[d][k] = max(dp[d][k], pre[d][k]) if d != D: nd = d + 1 nk = min(K, k + c) dp[nd][nk] = max(dp[nd][nk], pre[d][k] + a) dp, pre = pre, dp if pre[D][K] >= -inf//2: print(pre[D][K]) else: print("No")