#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
const int mn=2e5+10;
vector<int>ix[mn],iy[mn];
int x[mn],y[mn];
bool vis[mn];
ll tot;
set<int>sx,sy;
void dfs(int n){
    vis[n]=1;
    sx.insert(x[n]);
    sy.insert(y[n]);
    for(int k:ix[x[n]])if(!vis[k])dfs(k);
    for(int k:iy[y[n]])if(!vis[k])dfs(k);
}
int main(){
    int n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d%d",x+i,y+i);
        ix[x[i]].push_back(i);
        iy[y[i]].push_back(i);
    }
    for(i=0;i<n;i++){
        if(!vis[i]){
            dfs(i);
            tot+=sx.size()*sy.size();
            sx.clear();
            sy.clear();
        }
    }
    printf("%lld",tot-n);
}