#include<bits/stdc++.h>
using namespace std;

#include<atcoder/all>
using namespace atcoder;
using mint=atcoder::modint998244353;

#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

#define int long long

signed main(){
	int N,D,K;cin>>N>>D>>K;

	vector<int> A(N);for(auto&&e:A)cin>>e;
	vector<int> C(N);for(auto&&e:C)cin>>e;

	vector<vector<int>> dp(K+1,vector<int>(D+1,-1e18));
	dp[0][0]=0;

	for(int i=0;i<N;i++){
		for(int j=K;j>=0;j--){
			for(int k=D-1;k>=0;k--){
				if(dp[min(K,j+C[i])][k+1]<dp[j][k]+A[i]){
					dp[min(K,j+C[i])][k+1]=dp[j][k]+A[i];
				}
			}
		}
	}

	if(dp[K][D]<0){
		cout<<"No"<<endl;
	}else{
		cout<<dp[K][D]<<endl;
	}
}