配点 : 700 点
問題文
長さ N×K の数列 X=(X0,X1,⋯,XN×K−1) があります。
数列 X の要素は長さ N の数列 A=(A0,A1,⋯,AN−1) によって表され、全ての i,j (0≤i≤K−1, 0≤j≤N−1) について、
Xi×N+j=Aj です。
すぬけさんは、整数列 s を持っています。
最初、s は空です。
すぬけさんはこれから、すべての i=0,1,2,⋯,N×K−1 について、この順に、以下の操作を行います。
- s が Xi を含んでいない場合: s の末尾に Xi を追加する。
- s が Xi を含んでいる場合: s が Xi を含まなくなるまで、s の末尾の要素を削除し続ける。
このとき、Xi を末尾に加えないことに注意せよ。
全ての操作が終わったあとの数列 s の状態を求めてください。
制約
- 1≤N≤2×105
- 1≤K≤1012
- 1≤Ai≤2×105
- 入力される値はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N K
A0 A1 ⋯ AN−1
出力
全ての操作が終わったあとの数列 s の要素を、先頭から末尾の順に空白区切りで出力せよ。
3 2
1 2 3
2 3
X=(1,2,3,1,2,3) です。
操作は、以下のように行われます。
- i=0: s が 1 を含まないので、s の末尾に 1 を追加する。s=(1) となる。
- i=1: s が 2 を含まないので、s の末尾に 2 を追加する。s=(1,2) となる。
- i=2: s が 3 を含まないので、s の末尾に 3 を追加する。s=(1,2,3) となる。
- i=3: s が 1 を含むので、s が 1 を含む限り、末尾の要素を削除し続ける。s は (1,2,3)→(1,2)→(1)→() と変化する。
- i=4: s が 2 を含まないので、s の末尾に 2 を追加する。s=(2) となる。
- i=5: s が 3 を含まないので、s の末尾に 3 を追加する。s=(2,3) となる。
5 10
1 2 3 2 3
3
6 1000000000000
1 1 2 2 3 3
数列 s が空のこともあります。
11 97
3 1 4 1 5 9 2 6 5 3 5
9 2 6