#include <iostream>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    int n;
    cin>>n;

    int poolX[n]={0};
    int poolY[n]={0};

    pair <int,int> niz[n];

    for(int i=0;i<n;i++)
    {
        cin>>niz[i].first>>niz[i].second;

        poolX[niz[i].first]++;
        poolY[niz[i].second]++;

    }

    if(n==3)
    {
        if(niz[0].first==niz[1].first && niz[0].first==niz[2].first || niz[0].second==niz[1].second && niz[0].second==niz[2].second)
        {
         cout<<3;
         return 0;
        }
        else
        {
            cout<<2;
            return 0;
        }
    }
    if(n==2)
    {
        if(niz[0].first==niz[1].first || niz[0].second==niz[1].second)
            cout<<1;
        else
            cout<<0;
    }
    if(n==1)
    {
        cout<<0;
    }

    else
    {
     int resenje=0;

    for(int i=0;i<n;i++)
    {


        if(poolX[i]>1)
        {
            for(int x=poolX[i];x>0;x--)
            {
                resenje=resenje+x;
            }
        }
        if(poolY[i]>1)
        {
            for(int x=poolY[i];x>0;x--)
                resenje=resenje+x;
        }
    }

        cout<<resenje-3;
    }
    return 0;
}