有 个士兵需要被排成一排。由于每两个士兵的身高都互不相同,因此我们用 这 个整数来分别表示他们的身高,不妨设第 个士兵的身高为 ,。
现在,队列中身高为 的 个士兵的位置已经确定,你需要确定剩下 个士兵的位置,确定完毕之后,你得到一个士兵的队形: 。
接下来,首长会从你编排的队形中等概率随机抽取一个连续的区间 ,,他会检查 这个区间的士兵们能否组成一列良好的小队。一列士兵被称为良好的小队,当且仅当他们中最高的一个士兵站在排头或者排尾。例如,当 时,如果士兵的队形是 ,那么当首长抽取 时,就得到一支良好的小队,因为 中最高的士兵处于排尾 ;当首长抽取 时,也得到一支良好的小队,因为 中最高的士兵处于排头;而当首长抽取 时,就不能得到一支良好的小队,因为 中最高的士兵既不处于排头也不处于排尾。
你希望首长在抽查的时候抽中一列良好的小队的概率尽可能大,请你给出最优的编排方案。
输入格式
首先输入一个正整数 ,表示数据组数。
对于每组数据:
第一行,两个整数 ,分别表示士兵的总数目以及已经确定位置的士兵数目。
第二行, 个整数,第 个数表示 ,如果 则表示第 个位置的士兵还没有被确定;如果 则表示第 个位置的士兵是 号士兵(即他的身高为 )。数据保证恰有 个位置满足 。
保证 组测试数据的 不超过 。
输出格式
对于每组数据,输出一行, 个整数 表示你编排的士兵队形,整数之间用一个空格隔开,最后一个整数后应当紧跟一个换行,而不允许有行末空格。你的队形必须是一个 组成的排列,并且对于任意的 ,若输入数据中 不为 ,则必须有 。你的答案需要在满足限制的情况下最大化首长抽中良好小队的概率,如果有多种合法的方案,你可以输出任何一种。
样例
Output
1 2 3
2 1 3 4
10 3 9 8 1 7 6 4 5 2
提示
【数据范围】
, ,对于任意的 若满足 则必有 。