#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; } }