#include<bits/stdc++.h>
using namespace std;
inline int read(){
int w=0;
char ch=getchar();
while(ch<'0'||ch>'9'){
ch=getchar();
}
while(ch>='0'&&ch<='9'){
w=(w<<1)+(w<<3)+(ch-48);
ch=getchar();
}
return w;
}
int fa[10005];
int find(int r){
if(fa[r]==r) return r;
fa[r]=find(fa[r]);
return fa[r];
}
int solve(int z,int v){
for(int i=1;i<=z;i++) fa[i]=i;
for(int i=1;i<=v;i++){
int a,b;
a=read();b=read();
if(a==b) continue;
int x=find(a),y=find(b);
if(x!=y) fa[x]=y;
}
int u=find(1),ans=1;
for(int i=2;i<=z;i++){
int h=find(i);
if(u==h) ans++;
}
return ans;
}
int main(){
int n,m,p,q;
n=read();m=read();
p=read();q=read();
cout<<min(solve(n,p),solve(m,q))<<endl;
return 0;
}