#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T a) {
  return (a >= 0 ? a : -a);
}
int n;
struct node {
  int x, y;
};
bool chk_l(int a, node p[]) {
  for (int i = 0; i < n; i++)
    if (p[a].x > p[i].x && p[a].y == p[i].y) return true;
  return false;
}
bool chk_r(int a, node p[]) {
  for (int i = 0; i < n; i++)
    if (p[a].x < p[i].x && p[a].y == p[i].y) return true;
  return false;
}
bool chk_u(int a, node p[]) {
  for (int i = 0; i < n; i++)
    if (p[a].y < p[i].y && p[a].x == p[i].x) return true;
  return false;
}
bool chk_d(int a, node p[]) {
  for (int i = 0; i < n; i++)
    if (p[a].y > p[i].y && p[a].x == p[i].x) return true;
  return false;
}
int main() {
  int res = 0;
  cin >> n;
  node no[n];
  for (int i = 0; i < n; i++) {
    cin >> no[i].x >> no[i].y;
  }
  for (int i = 0; i < n; i++) {
    if (chk_l(i, no) && chk_r(i, no) && chk_u(i, no) && chk_d(i, no)) res++;
  }
  cout << res;
  return 0;
}
