n,d,k=map(int,input().split()) A=list(map(int,input().split())) C=list(map(int,input().split())) INF=10**18 dp=[[-INF]*(k+1) for _ in range(d+1)] dp[0][0]=0 for i in range(n): ndp=[[-INF]*(k+1) for _ in range(d+1)] for j in range(d+1): for l in range(k+1): ndp[j][l]=max(ndp[j][l],dp[j][l]) if j+1<=d: ndp[j+1][min(k,l+C[i])]=max(ndp[j+1][min(k,l+C[i])],dp[j][l]+A[i]) dp,ndp=ndp,dp print(dp[d][k] if dp[d][k]>=-10**12 else "No")