#include <bits/stdc++.h>
using namespace std;
int N;
pair<int, int> A[200000];
const int INF = 2e9;
bool comp(const pair<int, int>& a, const pair<int, int>& b) {
  return a.second == b.second ? a.first < b.first : a.second < b.second;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin >> N;
  for (int i = (0); i < (N); i++) {
    cin >> A[i].first >> A[i].second;
  }
  sort(A, A + N);
  long long ans = 0;
  for (int i = (0); i < (N); i++) {
    ans += upper_bound(&A[i + 1], &A[N], make_pair(A[i].first, INF)) -
           lower_bound(&A[i + 1], &A[N], make_pair(A[i].first, -INF));
  }
  sort(A, A + N, comp);
  for (int i = (0); i < (N); i++) {
    ans += upper_bound(&A[i + 1], &A[N], make_pair(INF, A[i].second), comp) -
           lower_bound(&A[i + 1], &A[N], make_pair(-INF, A[i].second), comp);
    ans -= upper_bound(&A[i + 1], &A[N], A[i], comp) -
           lower_bound(&A[i + 1], &A[N], A[i], comp);
  }
  cout << ans << endl;
  return 0;
}
