N, D, K = map(int, input().split()) A = list(map(int, input().split())) C = list(map(int, input().split())) if sum(sorted(C, reverse=True)[:D]) < K: print("No") else: DP = [[-10**18]*(K+1) for _ in range(D+1)] DP[0][0] = 0 for a, c in zip(A, C): for i in range(D-1, -1, -1): for j in range(K, -1, -1): nk = min(K, j+c) DP[i+1][nk] = max(DP[i+1][nk], DP[i][j]+a) print(DP[-1][-1])