#include<bits/stdc++.h>
using namespace std;
int n,m,p1,q,sum=0;
int p[10005],visi[10005],visj[10005];
int findp(int x){
if(p[x]==0) return x;
p[x]=findp(p[x]);
return p[x];
}
void hb(int x,int y){
int px=findp(x);
int py=findp(y);
if(px==py) return;
p[px]=py;
}
void cx(int x,int y){
int px=findp(x);
int py=findp(y);
if(px==py){
sum++;
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n>>m>>p1>>q;
hb(1,-1);
for(int i=1;i<=p1;++i){
int x,y;
cin>>x>>y;
hb(x,y);
}
for(int i=1;i<=q;++i){
int x,y;
cin>>x>>y;
if(x!=y) hb(x,y);
}
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
int u=sum;
if((!visi[i])&&(!visj[j])){
cx(i,-j);
if(sum>u){
visi[i]=1;
visj[j]=1;
}
}
}
}
cout<<sum;
return 0;
}