#include <bits/stdc++.h>
using namespace std;
bool right(int xp, int yp, int x, int y) { return (xp > x && yp == y); }
bool left(int xp, int yp, int x, int y) { return (xp < x && yp == y); }
bool lower(int xp, int yp, int x, int y) { return (xp == x && yp < y); }
bool upper(int xp, int yp, int x, int y) { return (xp == x && yp > y); }
int main() {
  int n;
  cin >> n;
  vector<pair<int, int> > puntos;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    pair<int, int> p = make_pair(x, y);
    puntos.push_back(p);
  }
  int c[n];
  memset(c, 0, sizeof(c));
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (i != j)
        if (right(puntos[j].first, puntos[j].second, puntos[i].first,
                  puntos[i].second)) {
          c[i]++;
          break;
        }
    }
    for (int j = 0; j < n; j++) {
      if (i != j)
        if (left(puntos[j].first, puntos[j].second, puntos[i].first,
                 puntos[i].second)) {
          c[i]++;
          break;
        }
    }
    for (int j = 0; j < n; j++) {
      if (i != j)
        if (lower(puntos[j].first, puntos[j].second, puntos[i].first,
                  puntos[i].second)) {
          c[i]++;
          break;
        }
    }
    for (int j = 0; j < n; j++) {
      if (i != j)
        if (upper(puntos[j].first, puntos[j].second, puntos[i].first,
                  puntos[i].second)) {
          c[i]++;
          break;
        }
    }
  }
  int ans = 0;
  for (int i = 0; i < n; i++) {
    if (c[i] == 4) {
      ans++;
    }
  }
  cout << ans << "\n";
  return 0;
}
