题目描述
Farmer John 正在为他的奶牛们雇用一位新的牛群领队。为此,他面试了 ()头奶牛来担任该职位。在面试第 个候选牛后,他会为候选牛分配一个 到 ()范围内的整数「牲任力」分数 ,与她们的领导能力相关。
由于 Farmer John 面试了如此多的奶牛,他没能记得所有奶牛的牲任力分数。然而,他确实记得 ()对数字 ,其中奶牛 是第一头比奶牛 到 拥有严格更高牲任力分数的奶牛(所以 )。
Farmer John 现在告诉你序列
(其中 表示他忘记了奶牛 的牲任力分数)和 对 。帮助他求出与此信息一致的最小字典序的牲任力分数序列,或者判断不存在这样的序列!如果一个分数序列比另一个分数序列于这两个序列不同的第一个位置上的奶牛分配了更小的分数,则这个分数序列的字典序更小。
每个测试点包含 ()个独立的测试用例。输入保证所有测试用例的 之和不超过 。
输入格式
输入的第一行包含 ,独立的测试用例的数量。每个测试用例描述如下:
- 第一行包含 , 和 。
- 第二行包含序列 ()。
- 最后 行,每行包含一个数对 。输入保证同一测试用例内的所有 各不相同。
输出格式
对于每个测试用例,输出一行,包含与 Farmer John 记忆一致的最小字典序牲任力分数序列,或者如果这样的序列不存在时输出 。
样例输入 #1
1 7 3 5 1 0 2 3 0 4 0 1 2 3 4 4 5
样例输出 #1
1 2 2 3 4 4 1
样例输入 #2
5 7 6 10 0 0 0 0 0 0 0 1 2 2 3 3 4 4 5 5 6 6 7 8 4 9 0 0 0 0 1 6 0 6 1 3 6 7 4 7 2 3 2 1 1 0 0 1 2 10 4 10 1 2 0 2 1 5 8 6 0 3 4 7 1 2 5 7 3 7 10 2 8 1 0 0 0 0 5 7 0 0 0 4 6 6 9
样例输出 #2
1 2 3 4 5 6 7 1 1 2 6 1 6 7 6 -1 1 2 5 2 1 5 8 6 1 3 -1