#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b) {
  if (!b) return a;
  return gcd(b, a % b);
}
long long int lcm(long long int a, long long int b) {
  return (a / gcd(a, b)) * b;
}
long long int modexp(long long int a, long long int b) {
  if (b == 0) return 1;
  if (b == 1) return a;
  long long int temp = modexp(a, (b >> 1));
  temp = (temp * temp);
  return (temp * modexp(a, b & 1));
}
long long int modexp(long long int a, long long int b, long long int m) {
  if (b == 0) return 1;
  if (b == 1) return a % m;
  long long int temp = modexp(a, (b >> 1), m);
  temp = (temp * temp) % m;
  return (temp * modexp(a, b & 1, m)) % m;
}
long long int mult(long long int a, long long int b, long long int m) {
  long long int res = 0;
  a %= m;
  while (b) {
    if (b & 1ll) res = (res + a) % m;
    a = (a * 2ll) % m;
    b /= 2ll;
  }
  return (res % m);
}
long long int modinv(long long int a, long long int p) {
  return modexp(a, p - 2, p);
}
map<int, int> mx, my;
map<pair<int, int>, int> xy;
int main() {
  int n;
  scanf("%d", &n);
  int x, y;
  long long int ans = 0;
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &x, &y);
    ans += mx[x];
    ans += my[y];
    ans -= xy[make_pair(x, y)];
    mx[x]++;
    my[y]++;
    xy[make_pair(x, y)]++;
  }
  printf("%lld\n", ans);
}
