#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
int i,j,k=0,d,n=0,m,a,b,c,q,l,r;
cin>>n;
vector<int> x[1001],y[1001];
int arr[n+1];
for(i=0;i<=n;i++)
arr[i]=i;
for(i=1;i<=n;i++){
cin>>a>>b;
if(x[a].size())
arr[i]=x[a][0];
else if(y[b].size())
arr[i]=y[b][0];
else {
x[a].emplace_back(i);
y[b].emplace_back(i);
}
}
for(i=1;i<=n;i++)
if(arr[i]==i)
k++;
cout<<k-1<<"\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKaW50IGksaixrPTAsZCxuPTAsbSxhLGIsYyxxLGwscjsKY2luPj5uOwp2ZWN0b3I8aW50PiB4WzEwMDFdLHlbMTAwMV07CmludCBhcnJbbisxXTsKZm9yKGk9MDtpPD1uO2krKykKICAgIGFycltpXT1pOwpmb3IoaT0xO2k8PW47aSsrKXsKICAgIGNpbj4+YT4+YjsKICAgIGlmKHhbYV0uc2l6ZSgpKQogICAgICAgIGFycltpXT14W2FdWzBdOwogICAgZWxzZSBpZih5W2JdLnNpemUoKSkKICAgICAgICBhcnJbaV09eVtiXVswXTsKICAgIGVsc2UgewogICAgICAgIHhbYV0uZW1wbGFjZV9iYWNrKGkpOwogICAgICAgIHlbYl0uZW1wbGFjZV9iYWNrKGkpOwogICAgfQoKfQogICAgZm9yKGk9MTtpPD1uO2krKykKICAgICAgICBpZihhcnJbaV09PWkpCiAgICAgICAgICAgIGsrKzsKY291dDw8ay0xPDwiXG4iOwoKcmV0dXJuIDA7Cn0KCgo=