编程题
### 问题描述
大衣有一个的长度为 $N$ 的数组 $A$,它仅包含正整数元素。
数组 $A$ 的频率数组是一个长度为 $N$ 的数组 $B$,其中 $B_i$ 等于元素 $A_i$ 在数组 $A$ 中出现的次数。
大衣不小心把数组 $A$ 弄丢了,但是有一个数组 $B$。
你的任务是帮大衣重新构造一个字典序最小的数组 $A$,满足:
- $1\le A_i\le 10^5$。
- 数组 $A$ 的频率数组为数组 $B$。
如果存在数组 $A$,输出该数组,否则输出 $-1$。
### 输入格式
第一行输入一个正整数 $T$ 表示测试数据的组数。
接下来 $T$ 组测试数据每组输入两行:
- 第一行输入一个正整数 $N$ 表示数组的长度。
- 第二行输入 $N$ 个整数 $B_1,B_2,\cdots,B_N$ 表示数组 $B$ 的元素。
### 输出格式
对于每组测试数据,如果存在数组 $A$,输出该数组,否则输出 $-1$,并换行。
### 样例输入
```text
5
5
2 3 3 3 2
5
1 1 1 1 1
5
5 5 5 5 5
3
1 2 4
8
1 3 2 3 2 2 2 3
```
### 样例输出
```text
1 2 2 2 1
1 2 3 4 5
1 1 1 1 1
-1
1 2 3 2 3 4 4 2
```
### 说明
样例 $1$:满足条件的字典序最小的数组 $A=[1,2,2,2,1]$。元素 $A_1,A_5$ 出现了 $2$ 次,元素 $A_2,A_3,A_4$ 出现了 $3$ 次。
样例 $2$:满足条件的字典序最小的数组 $A=[1,2,3,4,5]$。每个元素都只出现了一次。
样例 $3$:满足条件的字典序最小的数组 $A=[1,1,1,1,1]$。每个元素都出现了 $5$ 次。
样例 $3$:没有满足条件的数组 $A$。
### 评测数据规模
对于所有的评测数据,$1\le T\le 20$,$1\le N\le 10^4$,$1\le B_i\le10^4$。