#include<bits/stdc++.h>
using namespace std;
int n,m,p,q,a,b,f[20005],f2[20005],sum,sum1;
int find(int x)
{
if(f[x]==x) return x;
return f[x]=find(f[x]);
}
int find2(int x)
{
if(f2[x]==x) return x;
return f2[x]=find(f2[x]);
}
void bin(int x,int y)
{
f[find(x)]=find(y);
}
void bin2(int x,int y)
{
f2[find2(x)]=find2(y);
}
int main()
{
cin>>n>>m>>p>>q;
for(int i=1;i<=n;i++)
f[i]=i;
for(int i=1;i<=m;i++)
f2[i]=i;
for(int i=1;i<=p;i++)
{
cin>>a>>b;
bin(a,b);
}
for(int i=1;i<=q;i++)
{
cin>>a>>b;
bin2(abs(a),abs(b));
}
int k=find(1);
for(int i=2;i<=n;i++)
{
if(find(i)==k) sum++;
}
int kk=find2(1);
for(int i=2;i<=m;i++)
{
if(find2(i)==kk) sum1++;
}
cout<<min(sum,sum1)+1;
return 0;
}