import java.util.LinkedList;
import java.util.Scanner;

class Main {
	int n;
	LinkedList<Integer> a;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Main m = new Main(sc);
		m.solve();
		sc.close();
	}

	Main(Scanner sc) {
		n = sc.nextInt();
		a = new LinkedList<Integer>();
		for(int i=1;i<n;i++){
			a.add(sc.nextInt());
		}
	}

	void solve() {
		int[] bukaCnt = new int[n];
		while(a.size()>0){
			bukaCnt[a.pollFirst()-1]++;
		}
		for(int i:bukaCnt){
			System.out.println(i);
		}
	}
} import java.util.LinkedList; LinkedList java.util import java.util.Scanner; Scanner java.util class Main {
	int n;
	LinkedList<Integer> a;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Main m = new Main(sc);
		m.solve();
		sc.close();
	}

	Main(Scanner sc) {
		n = sc.nextInt();
		a = new LinkedList<Integer>();
		for(int i=1;i<n;i++){
			a.add(sc.nextInt());
		}
	}

	void solve() {
		int[] bukaCnt = new int[n];
		while(a.size()>0){
			bukaCnt[a.pollFirst()-1]++;
		}
		for(int i:bukaCnt){
			System.out.println(i);
		}
	}
} Main int n; n LinkedList<Integer> a; a public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Main m = new Main(sc);
		m.solve();
		sc.close();
	} main {
		Scanner sc = new Scanner(System.in);
		Main m = new Main(sc);
		m.solve();
		sc.close();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) Main m = new Main(sc); m new Main(sc) m.solve() m.solve m sc.close() sc.close sc String[] args args Main(Scanner sc) {
		n = sc.nextInt();
		a = new LinkedList<Integer>();
		for(int i=1;i<n;i++){
			a.add(sc.nextInt());
		}
	} Main {
		n = sc.nextInt();
		a = new LinkedList<Integer>();
		for(int i=1;i<n;i++){
			a.add(sc.nextInt());
		}
	} n = sc.nextInt() n sc.nextInt() sc.nextInt sc a = new LinkedList<Integer>() a new LinkedList<Integer>() for(int i=1;i<n;i++){
			a.add(sc.nextInt());
		} int i=1; int i=1; i 1 i<n i n i++ i++ i {
			a.add(sc.nextInt());
		} {
			a.add(sc.nextInt());
		} a.add(sc.nextInt()) a.add a sc.nextInt() sc.nextInt sc Scanner sc sc void solve() {
		int[] bukaCnt = new int[n];
		while(a.size()>0){
			bukaCnt[a.pollFirst()-1]++;
		}
		for(int i:bukaCnt){
			System.out.println(i);
		}
	} solve {
		int[] bukaCnt = new int[n];
		while(a.size()>0){
			bukaCnt[a.pollFirst()-1]++;
		}
		for(int i:bukaCnt){
			System.out.println(i);
		}
	} int[] bukaCnt = new int[n]; bukaCnt new int[n] n while(a.size()>0){
			bukaCnt[a.pollFirst()-1]++;
		} a.size()>0 a.size() a.size a 0 {
			bukaCnt[a.pollFirst()-1]++;
		} bukaCnt[a.pollFirst()-1]++ bukaCnt[a.pollFirst()-1] bukaCnt a.pollFirst()-1 a.pollFirst() a.pollFirst a 1 for(int i:bukaCnt){
			System.out.println(i);
		} int i bukaCnt {
			System.out.println(i);
		} {
			System.out.println(i);
		} System.out.println(i) System.out.println System.out System System.out i
import java.util.LinkedList;
import java.util.Scanner;

class Main {
	int n;
	LinkedList<Integer> a;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Main m = new Main(sc);
		m.solve();
		sc.close();
	}

	Main(Scanner sc) {
		n = sc.nextInt();
		a = new LinkedList<Integer>();
		for(int i=1;i<n;i++){
			a.add(sc.nextInt());
		}
	}

	void solve() {
		int[] bukaCnt = new int[n];
		while(a.size()>0){
			bukaCnt[a.pollFirst()-1]++;
		}
		for(int i:bukaCnt){
			System.out.println(i);
		}
	}
}