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