#include<bits/stdc++.h>
using namespace std;
int n,m,k,r,a[150],dp[105],t;
struct eee{
int mark,ti;
}hw[505];
int main(){
cin>>n>>m>>k>>r;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=m;i++)
cin>>hw[i].ti;
for(int i=1;i<=m;i++)
cin>>hw[i].mark;
//dp[0]=1;
for(int i=1;i<=m;i++)
for(int j=r;j>=hw[i].ti;j--)
dp[j] = max(dp[j],dp[j-hw[i].ti] + hw[i].mark);
for(int i=1;i<=r;i++)
if(dp[i]>=k){
t=r-i;
break;
}
//cout<<t<<" ";
int ct=0;
while(t>0&&ct<=n+1)
t-=a[++ct];
cout<<ct-1;
return 0;
}