#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<cmath>
#define int long long
using namespace std;
struct work{
int time;
int price;
} w[15];
int n,t[15],m,k,r,dp[15][155];
bool cmp(work a,work b);
signed main(){
scanf("%lld%lld%lld%lld",&n,&m,&k,&r);
for(int i=1;i<=n;++i) scanf("%lld",&t[i]);
for(int i=1;i<=m;++i) scanf("%lld",&w[i].time);
for(int i=1;i<=m;++i) scanf("%lld",&w[i].price);
sort(w+1,w+m+1,cmp);
for(int i=1;k>0;++i){
k-=w[i].price;
r-=w[i].time;
}
for(int i=1;i<=n;++i){
for(int j=0;j<=r;++j){
dp[i][j]=max(dp[i-1][j],dp[i-1][j-t[i]]+1);
}
}
printf("%lld",dp[n][r]);
return 0;
}
bool cmp(work a,work b){
if(a.time!=b.time)
return a.time<b.time;
return a.price>b.price;
}