#include <bits/stdc++.h>
using namespace std;
const int N=4e5+10,M=3e5;
int n,m,p,q,fa[N],cnt[N];
int find(int u){
if(u!=fa[u]) fa[u]=find(fa[u]);
return fa[u];
}
void unity(int u,int v){
int fu=find(u),fv=find(v);
if(fu!=fv){
fa[fu]=fv;
cnt[fv]+=cnt[fu];
}
}
int main(){
cin>>n>>m>>p>>q;int x,y;
for(int i=1;i<=N;i++)fa[i]=i,cnt[i]=1;
for(int i=1;i<=p;i++){
cin>>x>>y;
unity(x,y);
}
for(int i=1;i<=q;i++){
cin>>x>>y;
unity(x+M,y+M);
}
cout<<min(cnt[fa[1]],cnt[fa[-1+M]]);
}