#agc036b. [agc036_b]Do Not Duplicate

[agc036_b]Do Not Duplicate

问题陈述

我们有一个 N×KN \times K 整数序列:X=(X0,X1,,XN×K1)X=(X_0,X_1,\cdots,X_{N \times K-1})。它的元素由另一个 NN 整数序列表示:A=(A0,A1,,AN1)A=(A_0,A_1,\cdots,A_{N-1})。对于每对 i,ji, j (0iK1, 0jN10 \leq i \leq K-1,\ 0 \leq j \leq N-1),成立 Xi×N+j=AjX_{i \times N + j}=A_j

Snuke 有一个整数序列 ss,一开始是空的。对于每个 i=0,1,2,,N×K1i=0,1,2,\cdots,N \times K-1,按照这个顺序,他将执行以下操作:

  • 如果 ss 不包含 XiX_i:将 XiX_i 添加到 ss 的末尾。
  • 如果 ss 包含 XiX_i:重复删除 ss 的末尾元素,直到 ss 不再包含 XiX_i。请注意,在这种情况下,我们XiX_i 添加到 ss 的末尾。

找出 Snuke 完成操作后的 ss 的元素。

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1K10121 \leq K \leq 10^{12}
  • 1Ai2×1051 \leq A_i \leq 2 \times 10^5
  • 输入中的所有值都是整数。

输入

输入的格式如下所示:

NN KK A0A_0 A1A_1 \cdots AN1A_{N-1}

输出

按照开始到结束的顺序,以空格分隔,打印 Snuke 完成操作后的 ss 的元素。


示例输入 1

3 2
1 2 3

示例输出 1

2 3

在这种情况下,X=(1,2,3,1,2,3)X=(1,2,3,1,2,3)。我们将按照以下方式执行操作:

  • i=0i=0ss 不包含 11,所以我们将 11 添加到 ss 的末尾,结果为 s=(1)s=(1)
  • i=1i=1ss 不包含 22,所以我们将 22 添加到 ss 的末尾,结果为 s=(1,2)s=(1,2)
  • i=2i=2ss 不包含 33,所以我们将 33 添加到 ss 的末尾,结果为 s=(1,2,3)s=(1,2,3)
  • i=3i=3ss 包含 11,所以只要 ss 包含 11,我们会重复删除 ss 的末尾元素,导致 ss 发生以下变化:(1,2,3)(1,2)(1)()(1,2,3)→(1,2)→(1)→()
  • i=4i=4ss 不包含 22,所以我们将 22 添加到 ss 的末尾,结果为 s=(2)s=(2)
  • i=5i=5ss 不包含 33,所以我们将 33 添加到 ss 的末尾,结果为 s=(2,3)s=(2,3)

示例输入 2

5 10
1 2 3 2 3

示例输出 2

3

示例输入 3

6 1000000000000
1 1 2 2 3 3

示例输出 3

ss 最后可能为空。


示例输入 4

11 97
3 1 4 1 5 9 2 6 5 3 5

示例输出 4

9 2 6