#include<bits/stdc++.h>
using namespace std;
int n,a[100005],dp[305][100005],ans,m,s,e;
vector<int>b[100005];
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0),cin>>n>>m>>s>>e;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1,x;i<=m;i++)
cin>>x,b[x].emplace_back(i);
for(int i=1;i<=s/e;i++){
dp[i][0]=0x3f3f3f3f;
for(int j=1,p;j<=n;j++){
dp[i][j]=dp[i][j-1];
if(b[a[j]].empty()||b[a[j]].back()<=dp[i-1][j-1])
continue;
p=*upper_bound(b[a[j]].begin(),b[a[j]].end(),dp[i-1][j-1]);
if(i*e+j+p<=s)
ans=i;
dp[i][j]=min(dp[i][j],p);
}
}
cout<<ans;
return 0;
}