在一个公司里,有 n 名员工,编号 1 到 n。每名员工都有一个“传话对象”,即第 i 名员工只会把消息告诉第 t_i 名员工(允许告诉自己)。现在,从每名员工出发,依次沿着传话对象传递消息,可以证明经过有限步后,消息一定会回到一个已经传过的员工。
请你分别计算:从第 i 名员工开始,需要传递多少步后,才会第一次遇到一个已经传过消息的员工。
输入格式
第一行,一个整数 n。第二行,n 个整数 t_1, t_2, …, t_n,表示第 i 名员工的传话对象。
输出格式
输出 n 行,第 i 行一个整数,表示从第 i 名员工出发的答案。
输入样例
4
2 1 1 4
输出样例
2
2
3
1
说明提示
1 ≤ n ≤ 5 × 10^5
限制
时间限制:1000ms,内存限制:128MiB