卡牌游戏
题号:NC206139
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述



妖精仓库的孩子们在玩一个神奇的游戏,最开始,每个孩子都有一张唯一的卡牌。在每一天的结束,第i个孩子会把她的卡牌交给第pi个孩子,(如果i = pi,孩子会把卡牌交给自己)。保证所有的pi来自不同的整数1~n,即序列p是一个全排列。

你的任务是确定第i个孩子的卡牌,第一次归还到它主人时的天数。

例如,p=[4,1,2,3,5]。第一个孩子的卡牌会经过以下传递:

第一天之后,卡牌属于第4个孩子;

第二天之后,卡牌属于第3个孩子;

第三天之后,卡牌属于第2个孩子;

第四天之后,卡牌属于第1个孩子;

所以在四天后,第一个孩子的卡牌归还给它的主人。

输入描述:

第一行输入整数 n ,表示有 n 个孩子。

接下来的一行有 n 个数p1,p2, ... ,pn(1≤pi≤n),(1≤n≤200)。保证所有的pi都是不同的,pi 表示在一天的结束后,第 i 个孩子会把它的卡牌交给第 pi 个孩子。


输出描述:

输出n整数a1,a2, ... ,an,ai 是第 i 个孩子的书归还给他自己所需的天数。


示例1

输入

复制
5
1 2 3 4 5

输出

复制
1 1 1 1 1
示例2

输入

复制
6
4 6 2 1 5 3

输出

复制
2 3 3 2 1 3
示例3

输入

复制
5
5 1 2 4 3

输出

复制
4 4 4 1 4