N,D,K=list(map(int,input().split())) A=list(map(int,input().split())) C=list(map(int,input().split())) dp=[] for i in range(D+1): dp.append([-10**18]*(K+1)) dp[0][0]=0 for i in range(N): ndp=[] for j in range(D+1): ndp.append([-10**18]*(K+1)) for j in range(D+1): for k in range(K+1): if dp[j][k]<=-10**14: continue ndp[j][k]=max(dp[j][k],ndp[j][k]) if j!=D: ndp[j+1][min(K,k+C[i])]=max(ndp[j+1][min(K,k+C[i])],dp[j][k]+A[i]+10**10) for j in range(D+1): for k in range(K+1): dp[j][k]=ndp[j][k] #print(dp) if dp[D][K]<=-10**14: print("No") exit() print(dp[D][K]-10**10*D) #print("Yes")