import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner inScanner=new Scanner(System.in);
int n=inScanner.nextInt();
ArrayList<Integer> list=new ArrayList<>(); //存储x坐标
ArrayList<Integer> list2=new ArrayList<>(); //存储y坐标
int []result=new int[5]; //分别表示01234分选址的个数
for (int i = 0; i < n; i++) {
list.add(0);
list2.add(0);
list.set(i, inScanner.nextInt());
list2.set(i, inScanner.nextInt());
}
int sum=0;
for (int i = 0; i < n; i++) { //遍历每个垃圾点
int x=list.get(i); //获得横纵坐标
int y=list2.get(i);
int num=0; //表示上下左右加起来几个
for (int j = 0; j < n; j++) {
if(list.get(j)==x-1&&list2.get(j)==y) num++;
if(list.get(j)==x+1&&list2.get(j)==y) num++;
if(list.get(j)==x&&list2.get(j)==y-1) num++;
if(list.get(j)==x&&list2.get(j)==y+1) num++;
}
if(num==4) { //这个可以当作回收站
num=0; //置为0,表示对角中有几个垃圾点
for (int j = 0; j < n; j++) {
if(list.get(j)==x-1&&list2.get(j)==y-1) num++;
if(list.get(j)==x-1&&list2.get(j)==y+1) num++;
if(list.get(j)==x+1&&list2.get(j)==y-1) num++;
if(list.get(j)==x+1&&list2.get(j)==y+1) num++;
}
result[num]++;
}
}
for (int i : result) {
System.out.println(i);
}
}
}
09-01