#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int n, m, p, q, fa[N], ans1, ans2;
int find (int x) {
if (fa[x] == x) {
return x;
}
return fa[x] = find(fa[x]);
}
int main () {
cin >> n >> m >> p >> q;
for (int i = 1; i <= n; i++) {
fa[i] = i;
}
while (p--) {
int x, y;
cin >> x >> y;
fa[find(x)] = find(y);
}
for (int i = 1; i <= n; i++) {
if (fa[i] == fa[1]) {
ans1++;
}
}
for (int i = 1; i <= m; i++) {
fa[i] = i;
}
while (q--) {
int x, y;
cin >> x >> y;
x = abs(x), y = abs(y);
fa[find(x)] = find(y);
}
for (int i = 1; i <= m; i++) {
if (fa[i] == fa[1]) {
ans2++;
}
}
cout << min(ans1, ans2);
return 0;
}