优美的序列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

给出一个长度为 n(1\leq n\leq 1000) 的序列 a(1\leq a_i\leq 1000),一个序列是优美的需要满足以下条件:
  • 对于任意的 1\leq i,j\leq n,满足 |a_i-a_j|\geq |i-j|
Kevin 现在有一个长度为 n 的序列,你可以进行如下操作任意次:
  • 任选序列的两个下标 i,jij 可以相同),然后交换 a_i,a_j 的数值。
你需要使用上述操作(注意:你无需最小化操作的次数)帮他将这个序列变成优美的序列,或者告诉他该序列无法变成优美的序列。如果有多个可行的的答案,请输出任意一个。

输入描述:

第一行包含一个整数 T(1\leq T\leq 1000),表示测试用例的组数。

对于每组测试用例:

第一行包含一个整数 n(1\leq n\leq 1000),表示序列的长度。

第二行包含 n 个整数 a_1\dots a_n\ (1\leq a_i\leq 1000),表示该序列。

保证对于所有的测试用例,n 的总和不超过 1000

输出描述:

对于每组测试用例:

仅输出一行。如果该序列无法变成优美的序列,输出 -1;否则,输出 n 个整数,表示使用上述操作后产生的优美的序列。如果有多个可行的的答案,请输出任意一个。
示例1

输入

复制
2
2
1 1
1
100

输出

复制
-1
100