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