#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int *t,*w,*v,*dp;
int main()
{
int n,m,k,r;
cin >> n >> m >> k >> r;
t = new int[n + 1];
w = new int[m + 1];
v = new int[m + 1];
dp = new int[r + 1];
for (int i = 1;i <= n;i++) cin >> t[i];
for (int i = 1;i <= m;i++) cin >> w[i];
for (int i = 1;i <= m;i++) cin >> v[i];
for (int i = 1;i <= n;i++)
for (int j = r;j >= w[i];j--)
dp[j] = max(dp[j],dp[j - w[i]] + v[i]);
int cnt = 0;
sort(t + 1,t + n + 1);
for (int i = 1;i <= r;i++)
if (dp[i] >= k)
{
int lastt = r - i;
while (lastt > 0) lastt -= t[++cnt];
cnt--;
cout << cnt << endl;
return 0;
}
return 0;
}
rt