#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
const LL N = 1e1 + 5;
const LL M = 1e3 + 5;
LL n, m, k, r, x, ans = 0, a[N], b[N], c[N], dp[M];
int main(void) {
memset(dp, 0, sizeof(dp));
scanf("%lld%lld%lld%lld", &n, &m, &k, &r);
for (LL i = 1; i <= n; ++i) {
scanf("%lld", &a[i]);
}
sort(a + 1, a + n + 1);
for (LL i = 1; i <= m; ++i) {
scanf("%lld", &b[i]);
}
for (LL i = 1; i <= m; ++i) {
scanf("%lld", &c[i]);
}
for (LL i = 1; i <= n; ++i) {
for (LL j = r; j >= b[i]; --j) {
dp[j] = max(dp[j], dp[j - b[i]] + c[i]);
}
}
for (LL i = 1; i <= k; ++i) {
if (dp[i] >= k) {
x = r - i;
break;
}
}
for (LL i = 1; i <= n; ++i) {
x -= a[i];
if (x < 0) {
break;
}
++ans;
}
printf("%lld\n", ans);
return 0;
}