Byteasar 有一堆n 张牌想洗牌. 牌的位置从1 到 n编号. 一张在位置k的卡(1 <= k <= n) 下一次总是会到ak位置上. 我们定义bk 为Byteasar洗了l次牌后第k张牌的最终位置(初始时在位置k上的牌). 我们想知道初始的a序列。

Input

第一行有两个整数n和 l (1 <= n, l <= 1000000).

接下来n行描述了序列(bk), 1 <= bk <= n.

Output

输出n行每行一个整数描述序列(ak),

你可以假设数据保证肯定保证至少有一组解. 如有多解输出任意一组即可.

Sample Input

5 2

1

2

5

3

4

Sample Output

1

2

4

5

3

or:

2

1

4

5

3

Hint

1 2 3 4 5  1 2 4 5 3

               *                   =1 2 5 3 4

1 2 4 5 3  1 2 5 3 4

想象一个长度为L的循环,如果我们将这个循环求k次方,

我们将会得到Gcd(L,k)个长度为L/Gcd(L,k)的循环

那么现在我们将b分解成循环,

假如现在我们得到了一个长度为L′的循环,

那么由之前的结论可以得到L′=L/Gcd(L,k)

L=L'*Gcd(L,K)

于是对L'对待质因子分解,设某个质因子指数为a,它在K中的指数为b

则其在L中的指数x=a+min(x,b)

将x<b时,x=a+x,这明显是不成立的

于是x>=b,x=a+b

例如L'=20,K=6

L'=2^2 *5,k=2*3

于是L=2^*(1+2) * 5 ^(1+0)=40

对于这个长度为40的置换,只需要将L'所代表的那个置换(EN,分裂出来了两个),交错相连即可!

当L'=30时,算出来L=180,于是只需要将L'所代表的那个置换(EN,分裂出来了180/30=6个)

则形成(a1b1c1d1e1f1a2.....f2a3........f3..........a30........b30)


————————————————