package main
import (
"fmt"
)
func main() {
var n int
if _, err := fmt.Scan(&n); err != nil {
return
}
type Point struct {
x, y int
}
points := make([]Point, n)
for i := 0; i < n; i++ {
fmt.Scan(&points[i].x, &points[i].y)
}
supercentralCount := 0
for i := 0; i < n; i++ {
hasRight, hasLeft, hasUpper, hasLower := false, false, false, false
for j := 0; j < n; j++ {
if points[j].x > points[i].x && points[j].y == points[i].y {
hasRight = true
}
if points[j].x < points[i].x && points[j].y == points[i].y {
hasLeft = true
}
if points[j].x == points[i].x && points[j].y > points[i].y {
hasUpper = true
}
if points[j].x == points[i].x && points[j].y < points[i].y {
hasLower = true
}
}
if hasRight && hasLeft && hasUpper && hasLower {
supercentralCount++
}
}
fmt.Println(supercentralCount)
}