N,D,K = list(map(int,input().split())) A = list(map(int,input().split())) C = list(map(int,input().split())) now = [[float("-inf") for _ in range(K+1)] for _ in range(D+1)] now[0][0] = 0 for i in range(N): next = [[float("-inf") for _ in range(K+1)] for _ in range(D+1)] for j in range(D+1): for k in range(K+1): # 選ばない next[j][k] = max(next[j][k],now[j][k]) # 選ぶ if(j+1 > D):continue next[j+1][min(k+C[i],K)] = max(next[j+1][min(k+C[i],K)],now[j][k] + A[i]) now,next = next,[] print(now[-1][-1] if now[-1][-1] != float("-inf") else "No")