#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define FNAME "THIEF"
#define xd "\n"
using namespace std;
const int MAXN = (int)1e6 + 1;
const long long INF = (long long)1e12;
const long long MOD = (long long)1e9 + 7;
template<class X, class Y>
bool minimize(X &a , Y b){
if(a > b){
a = b;
return true;
}
return false;
}
template<class X, class Y>
bool maximize(X &a , Y b){
if(a < b){
a = b;
return true;
}
return false;
}
void HuuThien(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if(fopen(FNAME".inp","r")){
freopen(FNAME".inp","r",stdin);
freopen(FNAME".out","w",stdout);
}
}
int n;
int Maxv = 0;
long long W, K;
vector<long long> w;
vector<int> v;
void Init() {
cin >> n >> W >> K;
w.assign(n + 1, 0);
v.assign(n + 1, 0);
for(int i = 1; i <= n ; i++) {
cin >> w[i];
}
for(int i = 1; i <= n ; i++) {
cin >> v[i];
Maxv += v[i];
}
}
void Solve() {
long long res = 0;
for(int take = 1; take <= n ; take++) {
if(w[take] > K) continue;
vector<long long> dp(Maxv + 1, INF);
dp[0] = 0;
for(int i = 1; i <= n ; i++) {
if(i == take) continue;
for(int j = Maxv; j >= v[i]; j--) {
if(dp[j - v[i]] + w[i] <= W) {
dp[j] = min(dp[j], dp[j - v[i]] + w[i]);
}
}
}
long long ans = 0;
for(int i = Maxv; i >= 1 ; i--) {
if(dp[i] <= W) {
ans = i;
break;
}
}
maximize(res, ans + v[take]);
}
cout << res;
}
signed main(){
HuuThien();
int test = 1;
while(test--){
Init();
Solve();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgRk5BTUUgIlRISUVGIgojZGVmaW5lIHhkICJcbiIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1BWE4gPSAoaW50KTFlNiArIDE7CmNvbnN0IGxvbmcgbG9uZyBJTkYgPSAobG9uZyBsb25nKTFlMTI7CmNvbnN0IGxvbmcgbG9uZyBNT0QgPSAobG9uZyBsb25nKTFlOSArIDc7CiAKdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWT4KCWJvb2wgbWluaW1pemUoWCAmYSAsIFkgYil7CgkJaWYoYSA+IGIpewoJCQlhID0gYjsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCXJldHVybiBmYWxzZTsKCX0KIAp0ZW1wbGF0ZTxjbGFzcyBYLCBjbGFzcyBZPgoJYm9vbCBtYXhpbWl6ZShYICZhICwgWSBiKXsKCQlpZihhIDwgYil7CgkJCWEgPSBiOwoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQogCnZvaWQgSHV1VGhpZW4oKXsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCWlmKGZvcGVuKEZOQU1FIi5pbnAiLCJyIikpewoJCWZyZW9wZW4oRk5BTUUiLmlucCIsInIiLHN0ZGluKTsKCQlmcmVvcGVuKEZOQU1FIi5vdXQiLCJ3IixzdGRvdXQpOwoJfQp9CgppbnQgbjsKaW50IE1heHYgPSAwOwpsb25nIGxvbmcgVywgSzsKdmVjdG9yPGxvbmcgbG9uZz4gdzsKdmVjdG9yPGludD4gdjsKCnZvaWQgSW5pdCgpIHsKCWNpbiA+PiBuID4+IFcgPj4gSzsKCXcuYXNzaWduKG4gKyAxLCAwKTsKCXYuYXNzaWduKG4gKyAxLCAwKTsKCglmb3IoaW50IGkgPSAxOyBpIDw9IG4gOyBpKyspIHsKCQljaW4gPj4gd1tpXTsKCX0KCglmb3IoaW50IGkgPSAxOyBpIDw9IG4gOyBpKyspIHsKCQljaW4gPj4gdltpXTsKCQlNYXh2ICs9IHZbaV07Cgl9Cn0gCgp2b2lkIFNvbHZlKCkgewoJbG9uZyBsb25nIHJlcyA9IDA7CgoJZm9yKGludCB0YWtlID0gMTsgdGFrZSA8PSBuIDsgdGFrZSsrKSB7CgkJaWYod1t0YWtlXSA+IEspIGNvbnRpbnVlOwoJCXZlY3Rvcjxsb25nIGxvbmc+IGRwKE1heHYgKyAxLCBJTkYpOwoJCWRwWzBdID0gMDsKCQlmb3IoaW50IGkgPSAxOyBpIDw9IG4gOyBpKyspIHsKCQkJaWYoaSA9PSB0YWtlKSBjb250aW51ZTsKCQkJZm9yKGludCBqID0gTWF4djsgaiA+PSB2W2ldOyBqLS0pIHsKCQkJCWlmKGRwW2ogLSB2W2ldXSArIHdbaV0gPD0gVykgewoJCQkJCWRwW2pdID0gbWluKGRwW2pdLCBkcFtqIC0gdltpXV0gKyB3W2ldKTsKCQkJCX0KCQkJfQoJCX0KCgkJbG9uZyBsb25nIGFucyA9IDA7CgkJZm9yKGludCBpID0gTWF4djsgaSA+PSAxIDsgaS0tKSB7CgkJCWlmKGRwW2ldIDw9IFcpIHsKCQkJCWFucyA9IGk7CgkJCQlicmVhazsKCQkJfQoJCX0KCQltYXhpbWl6ZShyZXMsIGFucyArIHZbdGFrZV0pOwoJfQoKCWNvdXQgPDwgcmVzOwp9IAoKc2lnbmVkIG1haW4oKXsKCUh1dVRoaWVuKCk7CQoJaW50IHRlc3QgPSAxOwoJd2hpbGUodGVzdC0tKXsKCQlJbml0KCk7CgkJU29sdmUoKTsKCX0KfQ==