/*
TASK:man
LANG:C++
*/
#include <iostream>
using namespace std;
int main()
{
    int a[15000];
    int n,c,b,e,z,d,k=0,k1=20000,i,j;
    cin >> n;
    for (i=1;i<=n;i++) {
        cin >> c >> b;
        k1=min(k1,c);
        k1=min(k1,b);
        k=max(k,c);
        k=max(k,b);
        if (a[c]==0 && a[b]==0) { z++; a[c]=z; a[b]=z; e++; }
        if (a[c]!=a[b]) {
           if (a[c]!=0 && a[b]!=0) { e++; d=a[c]; for (j=k1;j<=k;j++)
                          if (a[j]==d) a[j]=a[b]; }
           if (a[b]==0) { e++; d=a[b]; for (j=k1;j<=k;j++)
                          if (a[j]==d) a[j]=a[c]; }
           if (a[c]==0) { e++; d=a[c]; for (j=k1;j<=k;j++)
                          if (a[j]==d) a[j]=a[b]; } }
        }
    cout << e << '\n';
    return 0;
}
