编程题
### 问题描述
"花果山也装修新山洞了!!"
所谓一猴得道,群猴升天。
自从孙悟空去天庭做官之后,花果山的待遇也水涨船高,许多山洞都进行了装修,成为了猴子们的新宿舍,但是如何安排猴子们进行山洞选择却是一个难题。
具体地说,现在需要将 $n$ 只猴子分配进 $n$ 个山洞,猴子们的编号为 $1 \sim n$,山洞的编号也为 $1 \sim n$。
在入住山洞时,我们需要将猴子们按照某种排列顺序依次从 $1$ 号洞开始入住,例如猴子们的排序为 $[4,2,3,1]$,则意味着 $4$ 号猴入住 $1$ 号山洞,$2$ 号猴入住 $2$ 号山洞,$3$ 号猴入住 $3$ 号山洞,$1$ 号猴入住 $4$ 号山洞。
由于猴群等级界限森严,每只猴子还会被另外一只猴子所压制,第 $i$ 只猴子会被编号为 $a_i$ 的猴子所压制,这意味着编号为 $a_i$ 的猴子所居住的山洞编号必须小于编号为 $i$ 的猴子所居住的山洞。
现在请问,在满足所有优先级关系的情况下,每个山洞可能出现多少种不同编号的猴子居住呢?
### 输入格式
第一行输入一个整数 $n(1 \leq n \leq 10^5)$,表示猴子和山洞的数量。
接下来一行 $n$ 个整数 $a_1,a_2,a_3,\cdots,a_n(0\le a_i \le n,a_i \ne i)$,表示每只猴子被哪只猴子压制。
**数据保证有且仅有一个 $a_i$ 满足 $a_i$ 等于 $0$,意味编号为 $i$ 的猴子不会被其他任何猴子所压制。并且优先级关系合法,不会出现环。**
### 输出格式
输出一行 $n$ 个整数,第 $i$ 个整数表示第 $i$ 个山洞可能出现多少种不同编号的猴子居住。
### 输入样例
```text
4
0 1 1 2
```
### 输出样例
```text
1 2 3 2
```