#include<bits/stdc++.h>
using namespace std;
int dp[100005],w[100005],v[100005],k[100005],dp2[100005];
int main(){
int n,m,a,b;
cin>>n>>m>>a>>b;
for(int i=1;i<=n;i++)cin>>k[i];
for(int i=1;i<=m;i++)cin>>w[i];
for(int i=1;i<=m;i++)cin>>v[i];
int s=99;
for(int i=1;i<=m;i++){
for(int j=b;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
bool flag=-1;
for(int i=1;i<=m;i++){
flag=1;
if(dp[i]>=a){
s=b-i;
break;
}
}
int maxn=0;
for(int i=1;i<=n;i++){
for(int j=s;j>=k[i];j--){
dp2[j]=max(dp2[j],dp2[j-k[i]]+1);
}
}
cout<<dp2[s];
return 0;
}