luogu#P5794. [THUSC2015] 解密运算

[THUSC2015] 解密运算

题目描述

对于一个长度为 NN 的字符串,我们在字符串的末尾添加一个特殊的字符 .。之后将字符串视为一个环,从位置 1,2,3,...,N+11,2,3,...,N+1 为起点读出 N+1N+1 个字符,就能得到 N+1N+1 个字符串。

比如对于字符串 ABCAAA,我们可以得到这 N+1N+1 个串:

ABCAAA.
BCAAA.A
CAAA.AB
AAA.ABC
AA.ABCA
A.ABCAA
.ABCAAA

接着我们对得到的这 N+1N+1 个串按字典序从小到大进行排序(注意特殊字符 . 的字典序小于任何其他的字符)结果如下:

.ABCAAA
A.ABCAA
AA.ABCA
AAA.ABC
ABCAAA.
BCAAA.A
CAAA.AB

最后,将排序好的 N+1N+1 个串的最后一个字符取出,按照顺序排成一个新的字符串,也就是上面这个表的最后一列,就是加密后的密文 AAAC.AB

请通过加密后的密文求出加密前的字符串。

输入格式

第一行有两个整数 N,MN,M,分别表示加密前的字符串长度和字符集大小,其中字符用整数 1,2,3,...,M1,2,3,...,M 编号,添加的特殊字符 .00 编号。

第二行为 N+1N+1 个整数,表示加密后的字符串。

输出格式

输出仅一行,包含 NN 个整数,用空格隔开,依次表示加密前字符串中每个字符的编号。

6 3
1 1 1 3 0 1 2
1 2 3 1 1 1

提示

对于第 ii 个测试点 (i=14i=1 \sim 4),N=5×(i+1),M3N=5\times (i+1),M\leq 3

对于第 565\sim 6 个测试点,N,M50N,M\leq 50,字符串中字符互不相同。

对于第 787\sim 8 个测试点,N,M1000N,M\leq 1000,字符串中字符互不相同。

对于第 9129\sim 12 个测试点,N,M1000N,M\leq 1000

对于第 132013\sim 20 个测试点,N,M200000N,M\leq 200000