#include<bits/stdc++.h>
using namespace std;
int n,m,p,q,ans=1,ans2=1,fp[100010],fq[10010];
int find_p(int a){
if(a==fp[a])return a;
return fp[a]=find_p(fp[a]);
}
int find_q(int a){
if(a==fq[a])return a;
return fq[a]=find_q(fq[a]);
}
int main(){
cin>>n>>m>>p>>q;
for(int i=1;i<=n;i++)fp[i]=i;
for(int i=1;i<=m;i++)fq[i]=i;
for(int i=1;i<=p;i++){
int x,y;
cin>>x>>y;
fp[find_p(x)]=find_p(x);
}
for(int i=1;i<=q;i++){
int x,y;
x=abs(x),y=abs(y);
cin>>x>>y;
fq[find_q(y)]=find_q(x);
}
for(int i=1;i<=p;i++)
if(find_p(fp[i])==find_p(fp[1]))ans++;
for(int i=1;i<=q;i++)
if(find_q(fq[i])==find_q(fq[1]))ans2++;
cout<<min(ans,ans2)<<endl;
return 0;
}