教官

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 officer.in 输出文件 officer.out

【题目描述】


每个学年的开始,高一新生们都要进行传统的军训。今年有一个军训教官十分奇怪,他为了测试学员们的反应能力,每次吹哨后学员们都会变换位置。每次左数第i位学员都会站到第ai个位置,经过若干次之后,队伍又会回到原来的样子。
你的任务是计算n个人的队伍至少经过多少次之后,队伍恢复到原来样子。

 

【输入】


第一行包含一个整数N(0<N<=10000),表示队伍的人数。
接下来N行,每行一个正整数ai表示左起第i个人接下来出现在左起第ai个位置上。

 

【输出】


仅包括一行,一个正整数M,表示军官最少的吹哨次数。
 

【输入样例】

officer.in

5
2
3
4
5
1

【输出样例】

officer.out

5
【提示】

数据规模
对于30%的数据,有N<=100
对于100%的数据,有N<=10000;
对于全部数据,答案在均在64位整数范围之内。