#include <bits/stdc++.h>
using namespace std;
int n;
vector<int>a,b;
int page;
int dp[1005][1005];
int fun(int i,int j){
if(i>=n)return 0;
if(j>=page)return 0;
if(dp[i][j]!=-1)return dp[i][j];
int ans=0;
if(j+2*b[i]<=page)ans=max(ans,a[i]+fun(i+1,j+2*b[i]));
ans=max(ans,fun(i+1,j));
return dp[i][j]=ans;
}
int main() {
// your code goes here
cin>>n;
vector<pair<int,int>>p(n);
memset(dp,-1,sizeof(dp));
a.resize(n);b.resize(n);
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<n;i++){
int x;
cin>>x;
p[i]=make_pair(a[i],x);
}
sort(a.begin(),a.end());sort(p.begin(),p.end());
for(int i=0;i<n;i++)b[i]=p[i].second;
cin>>page;
int ans=fun(0,0);
cout<<ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuOwp2ZWN0b3I8aW50PmEsYjsKaW50IHBhZ2U7CmludCBkcFsxMDA1XVsxMDA1XTsKaW50IGZ1bihpbnQgaSxpbnQgail7CglpZihpPj1uKXJldHVybiAwOwoJaWYoaj49cGFnZSlyZXR1cm4gMDsKCWlmKGRwW2ldW2pdIT0tMSlyZXR1cm4gZHBbaV1bal07CglpbnQgYW5zPTA7CglpZihqKzIqYltpXTw9cGFnZSlhbnM9bWF4KGFucyxhW2ldK2Z1bihpKzEsaisyKmJbaV0pKTsKCWFucz1tYXgoYW5zLGZ1bihpKzEsaikpOwoJcmV0dXJuIGRwW2ldW2pdPWFuczsKfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgljaW4+Pm47Cgl2ZWN0b3I8cGFpcjxpbnQsaW50Pj5wKG4pOwoJbWVtc2V0KGRwLC0xLHNpemVvZihkcCkpOwoJYS5yZXNpemUobik7Yi5yZXNpemUobik7Cglmb3IoaW50IGk9MDtpPG47aSsrKWNpbj4+YVtpXTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWludCB4OwoJCWNpbj4+eDsKCQlwW2ldPW1ha2VfcGFpcihhW2ldLHgpOwoJfQoJc29ydChhLmJlZ2luKCksYS5lbmQoKSk7c29ydChwLmJlZ2luKCkscC5lbmQoKSk7Cglmb3IoaW50IGk9MDtpPG47aSsrKWJbaV09cFtpXS5zZWNvbmQ7CgljaW4+PnBhZ2U7CglpbnQgYW5zPWZ1bigwLDApOwoJY291dDw8YW5zOwoJcmV0dXJuIDA7Cn0=