N,D,K=map(int,input().split()) A=list(map(int,input().split())) C=list(map(int,input().split())) dp=[[-(1<<60)]*(D+1) for i in range(K+1)] dp[0][0]=0 for i in range(N): ndp=[[-(1<<60)]*(D+1) for i in range(K+1)] for j in range(K+1): for k in range(D+1): ndp[j][k]=max(ndp[j][k],dp[j][k]) if k!=D: ndp[min(K,j+C[i])][k+1]=max(ndp[min(K,j+C[i])][k+1],dp[j][k]+A[i]) dp=ndp if dp[K][D]<=-(1<<50): print("No") else: print(dp[K][D])