N,D,K=map(int,input().split()) A=list(map(int,input().split())) C=list(map(int,input().split())) dp=[[-10**13]*(K+1) for j in range(D+1)] dp[0][0]=0 for i in range(N): x,y=A[i],C[i] dp2=[[-10**13]*(K+1) for j in range(D+1)] for j in range(D+1): if j>i: continue for k in range(K+1): dp2[j][k]=max(dp[j][k],dp2[j][k]) if j+1<=D: for k in range(K+1): p=min(K,k+y) dp2[j+1][p]=max(dp2[j+1][p],dp[j][k]+x) for j in range(D+1): dp[j]=dp2[j][:] if dp[D][K]<-10**12: print('No') exit() print(dp[D][K])