← Home
#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;
}