#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
const int N=1e4+100;
int a[N],d[N],n,m,p,q;
int b,c,x,y,sum,mus;
int fun(int gen){
if(a[gen]==gen)return gen;
else return a[gen]=fun(a[gen]);
}
int fun1(int gen){
if(d[gen]==gen)return gen;
else return d[gen]=fun(d[gen]);
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>m>>p>>q;
for(int i=1;i<=n;i++){a[i]=i;}
for(int i=1;i<=m;i++){d[i]=i;}
for(int i=1;i<=p;i++){
cin>>b>>c;
int b1=fun(b),c1=fun(c);
if(c==1&&b!=1){swap(b1,c1);}
if(b1!=c1){a[c1]=b1;}
}
for(int i=1;i<=n;i++){
if(a[i]==a[1]){sum++;}
}
for(int i=1;i<=q;i++){
cin>>x>>y;x=x*-1,y=y*-1;
int x1=fun1(x),y1=fun1(y);
if(y==1&&x!=1){swap(x1,y1);}
if(x1!=y1){d[y1]=x1;}
}
for(int i=1;i<=m;i++){
if(d[i]==d[1]){
mus++;
}
}
cout<<min(sum,mus);
return 0;
}