#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i = 0; i < n; i++)
const int mx = 100005;
int n, a, b;
int p[mx], yp[mx];
long long ans, nmy[mx];
void ufini(int n){ fill(p, p+n, -1);}
int find(int x){return (p[x] < 0 ? x : p[x] = find(p[x]));}
void uni(int x, int y){
    x = find(x); y = find(y);
    if(x != y){
        if(x < y) swap(x, y);
        nmy[x] += nmy[y];
        p[x] += p[y];
        p[y] = x;
    }
}
int main(){
    scanf("%d", &n);
    fill(p, p+mx, -1);
    fill(yp, yp+mx, -1);
    rep(i,n){
        scanf("%d%d", &a, &b);
        if(yp[b] == -1){
            yp[b] = find(a);
            nmy[yp[b]]++;
        }else uni(a, yp[b]);
    }
    rep(i,mx) if(find(i) == i) ans -= nmy[i] * p[i];
    printf("%lld\n", ans - n);
}