#joi2016yob. [joi2016yo_b]ゼッケンの交換 (Swapping Bibs)

[joi2016yo_b]ゼッケンの交換 (Swapping Bibs)

问题

JOI 高校有 N 名学生,他们排成一列,从西到东。第 i 个学生位于列的西端,并且学生 i 的编号是 i。每个学生胸前都戴着一个写有一个整数的胸牌。初始时,学生 i 的胸牌上写着整数 Ai。

有 M 枚接力棒,每枚接力棒都有编号从 1 到 M。对于 k = 1, 2, ..., M,执行以下操作。关于接力棒 k(2 ≤ k ≤ M)的操作在完成关于接力棒 k-1 的操作之后进行。

  1. 老师将接力棒 k 交给学生 1。
  2. 接收到接力棒的学生按照以下规则传递接力棒:
    • 规则:假设学生 i 接收了接力棒 k。
      • 当 1 ≤ i ≤ N-1 时:如果学生 i 的胸牌上整数除以 k 的余数大于学生 i+1 的胸牌上整数除以 k 的余数,则学生 i 和学生 i+1 交换胸牌,并且学生 i 将接力棒传给学生 i+1。否则,学生 i 将接力棒传给学生 i+1,而不交换胸牌。
      • 当 i = N 时:学生 N 将接力棒交给老师。
  3. 当老师从学生 N 那里接收到接力棒 k 后,关于接力棒 k 的操作结束。

给定初始时每个学生胸牌上写的整数和接力棒的数量 M,编写程序求出在老师从学生 N 那里接收到接力棒 M 后,每个学生胸牌上的整数。


输入

输入包含 1 + N 行。

第 1 行包含两个整数 N 和 M(1 ≤ N ≤ 100,1 ≤ M ≤ 100),表示学生人数和接力棒数量。

接下来的 N 行中的第 i 行(1 ≤ i ≤ N)包含一个整数 Ai(1 ≤ Ai ≤ 1000),表示初始时学生 i 胸牌上写的整数 Ai。

输出

输出包含 N 行。第 i 行(1 ≤ i ≤ N)输出老师从学生 N 那里接收到接力棒 M 后,学生 i 胸牌上的整数。


输入示例 1

6 4
3
2
8
3
1
5

输出示例 1

2
3
1
8
5
3

在示例 1 中,有 6 个学生。初始时,学生的胸牌上的整数依次为 3、2、8、3、1、5。有 4 枚接力棒。

  • 在关于接力棒 1 的操作完成时,学生的胸牌上的整数依次为 3、2、8、3、1、5。
  • 在关于接力棒 2 的操作完成时,学生的胸牌上的整数依次为 2、8、3、3、1、5。
  • 在关于接力棒 3 的操作完成时,学生的胸牌上的整数依次为 2、3、3、1、8、5。
  • 在关于接力棒 4 的操作完成时,学生的胸牌上的整数依次为 2、3、1、8、5、3。

输入示例 2

10 6
1
2
3
4
5
6
7
8
9
10

输出示例 2

6
1
2
3
10
4
8
7
9
5