N, D, K = map(int, input().split()) A = list(map(int, input().split())) C = list(map(int, input().split())) INF = 1<<62 DP = [[-INF]*(K+1) for _ in range(D+1)] DP[0][0] = 0 SC = sorted(C, reverse=True) if sum(SC[:D]) < K: print("No") exit() for i in range(N): a, c = A[i], C[i] for j in reversed(range(D)): for k in reversed(range(K+1)): DP[j+1][min(K, k+c)] = max(DP[j+1][min(K, k+c)], DP[j][k]+a) # for a in DP: print(a) # print("--------") print(DP[D][K])