#include<cstdio>
#include<cmath>
#include<iostream>
int n,m,p,q;
int fa[200005];
int mom[200005];
int num1[200005];
int num2[200005];
using namespace std;
int findf(int x)
{
if(fa[x]==x) return x;
return fa[x]=findf(fa[x]);
}
int findm(int x)
{
if(mom[x]==x) return x;
return mom[x]=findm(mom[x]);
}
int main()
{
scanf("%d %d %d %d",&n,&m,&p,&q);
for(int i=1;i<=p;i++)
{
fa[i]=i;
num1[i]=1;
}
for(int i=1;i<=p;i++)
{
int x,y;
scanf("%d %d",&x,&y);
int fx=findf(x);
int fy=findf(y);
if(fx!=fy)
{
num1[fy]+=num1[fx];
fa[fx]=fy;
num1[fx]=0;
}
}
for(int i=1;i<=q;i++)
{
mom[i]=i;
num2[i]=1;
}
for(int i=1;i<=q;i++)
{
int x,y;
scanf("%d %d",&x,&y);
x=abs(x);
y=abs(y);
int fx=findm(x);
int fy=findm(y);
if(fx!=fy)
{
num2[fy]+=num2[fx];
mom[fx]=fy;
num2[fx]=0;
}
}
int fx=findf(1);
int fy=findm(1);
printf("%d",min(num1[fx],num2[fy]));
}