#include <bits/stdc++.h>
using i64 = long long;
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  int n;
  std::cin >> n;
  std::vector<int> x(n), y(n);
  for (int i = 0; i < n; i++) {
    std::cin >> x[i] >> y[i];
  }
  for (int i = 0; i < n; i++) {
    x[i] /= 2;
    x[i] %= 2;
    y[i] /= 2;
    y[i] %= 2;
  }
  i64 ans = 0;
  auto get = [&](int x1, int y1, int x2, int y2) {
    return (x1 ^ x2) | (y1 ^ y2);
  };
  int cnt[2][2] = {};
  for (int i = 0; i < n; i++) {
    cnt[x[i]][y[i]]++;
  }
  for (int i = 0; i < n; i++) {
    cnt[x[i]][y[i]]--;
    for (int j = i + 1; j < n; j++) {
      cnt[x[j]][y[j]]--;
      for (int x1 = 0; x1 < 2; x1++) {
        for (int y1 = 0; y1 < 2; y1++) {
          if ((get(x[i], y[i], x[j], y[j]) ^ get(x[j], y[j], x1, y1) ^
               get(x1, y1, x[i], y[i])) == 0) {
            ans += cnt[x1][y1];
          }
        }
      }
      cnt[x[j]][y[j]]++;
    }
    cnt[x[i]][y[i]]++;
  }
  ans /= 3;
  std::cout << ans << "\n";
  return 0;
}
