#arc114f. [arc114_f]Permutation Division

[arc114_f]Permutation Division

问题说明

给定一个由 1,2,,N1, 2, \ldots, N 组成的排列 PP

你可以根据需要将 PP 分割成恰好 KK 个非空的连续子序列。

Maroon 将重新排列你创建的这些子序列,并将它们连接起来形成一个新的排列 QQ。他的目标是使 QQ 在词典序上最大化。

你希望以一种方式将 PP 分割,使 QQ 在词典序上最小化。找到在这种情况下的 QQ

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1KN1 \leq K \leq N
  • 1PiN1 \leq P_i \leq N
  • PiPj(ij)P_i \neq P_j (i \neq j)
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入中给出:

NN KK

P1P_1 P2P_2 \cdots PNP_N

输出

当你以最优方式分割 PP 时,打印出 QQ


样例输入 1

3 2
1 2 3

样例输出 1

2 3 1

你有两种方式将 PP 分割:(1,2),(3)(1, 2),(3)(1),(2,3)(1), (2, 3)

在前一种情况下,Maroon 将按照 (3),(1,2)(3), (1, 2) 的顺序重新排列它们,得到 Q=(3,1,2)Q = (3, 1, 2)

在后一种情况下,Maroon 将按照 (2,3),(1)(2, 3), (1) 的顺序重新排列它们,得到 Q=(2,3,1)Q = (2, 3, 1)

因此,你应该选择后者。


样例输入 2

4 3
4 3 1 2

样例输出 2

4 3 1 2

样例输入 3

20 7
10 5 8 2 1 9 12 20 15 3 7 6 19 4 11 17 13 14 16 18

样例输出 3

10 5 8 2 7 6 19 4 11 17 13 14 16 18 3 1 9 12 20 15