#include <bits/stdc++.h>
using namespace std;
long long pw(long long b, long long r, long long md) {
  long long ans = 1;
  while (r) {
    if (r & 1) ans = (ans * b) % md;
    b = (b * b) % md;
    r >>= 1;
  }
  return ans;
}
long long par[1000000];
long long fnd(long long u) {
  if (u == par[u]) return u;
  return par[u] = fnd(par[u]);
}
void uni(long long u, long long v) {
  long long p1 = fnd(u);
  long long p2 = fnd(v);
  par[p1] = p2;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, m, q;
  cin >> n >> m >> q;
  for (int i = 1; i <= n + m; i++) par[i] = i;
  for (int i = 0; i < q; i++) {
    long long u, v;
    cin >> u >> v;
    uni(u, n + v);
  }
  long long ans = -1;
  for (int i = 1; i <= n + m; i++)
    if (par[i] == i) ans++;
  cout << ans << '\n';
  return 0;
}
