#include <bits/stdc++.h>
using namespace std;
int n, dsc;
int par[103][2];
bool v[103];
void df(int i) {
  v[i] = 1;
  for (int j = int(1); j <= int(n); j++)
    if ((par[j][0] == par[i][0] || par[j][1] == par[i][1]) && !v[j]) df(j);
}
int main() {
  cin >> n;
  for (int i = int(1); i <= int(n); i++) cin >> par[i][0] >> par[i][1];
  for (int i = int(1); i <= int(n); i++)
    if (!v[i]) {
      df(i);
      dsc++;
    }
  cout << dsc - 1;
}
