pts
#include<bits/stdc++.h>
using namespace std;
int sa[100004],sb[100004];
int bcga(int x){
if(sa[x]==x){
return x;
}
sa[x]=bcga(sa[x]);
return bcga(sa[x]);
}
int bcgb(int x){
if(sb[x]==x){
return x;
}
sb[x]=bcgb(sb[x]);
return bcgb(sb[x]);
}
int main(){
int n,m,p,q,x,y,ansa=0,ansb=0,cnta,cntb;
cin>>n>>m>>p>>q;
for(int i=1;i<=n;i++){
sa[i]=i;
}
for(int i=1;i<=p;i++){
cin>>x>>y;
sa[bcga(x)]=bcga(y);
}
cnta=sa[1];
for(int i=1;i<=n;i++){
if(cnta==sa[i]){
ansa++;
}
}
for(int i=1;i<=m;i++){
sb[i]=i;
}
for(int i=1;i<=q;i++){
cin>>x>>y;
x=-x,y=-y;
sb[bcgb(x)]=bcgb(y);
}
cntb=sb[1];
for(int i=1;i<=m;i++){
if(cntb==sb[i]){
ansb++;
}
}
cout<<min(ansa,ansb)<<endl;
return 0;
}