编程题
### 问题描述
小蓝是一个喜欢数学的高中生,他最近在研究一种排列的构造方法。这种排列由 $n$ 个不同的数构成,且这些数满足从 $1$ 到 $n$ 的每个数都恰好出现一次。为了构造这种排列,小蓝设计了一个规则:对于一个长度为 $n$ 的排列 $p$,可以构造出一个长度为 $\frac{n}{2}$ 的数组 $b$,其中对于 $1\leq i\leq \frac{n}{2}$,$b_i=\max(p_{2i-1},p_{2i})$。
小蓝想知道,对于给定的数组 $b$,是否存在一个字典序最小的排列 $p$,使得 $b$ 恰好可以由 $p$ 构造得到。如果存在,他希望你帮助他找到这个排列 $p$。
字典序比较规则:给定两个排列 $p$ 和 $q$,定义 $p$ 的字典序小于 $q$ 的字典序,当且仅当存在一个位置 $i$,满足 $p_j = q_j$,对于 $j \in [1, i-1]$,且 $p_i < q_i$。
请帮助小蓝解决这个问题吧!
### 输入格式
输入的第一行包含一个整数 $t$,表示测试数据组数。
每组测试数据的第一行包含一个偶数 $n$,表示排列的长度。
每组测试数据的第二行包含 $\frac{n}{2}$ 个整数 $b_1,b_2,\dots,b_{\frac{n}{2}}$,表示数组 $b$ 中的元素。
### 输出格式
对于每组测试数据,输出一个排列 $p$,使得 $b$ 可以从 $p$ 中构造得到,并且字典序最小。
如果所求的排列不存在,则输出一个数字 $\texttt{-1}$。
### 样例输入
```txt
6
6
4 3 6
4
2 4
8
8 7 2 3
6
6 4 2
4
4 4
8
8 7 4 5
```
### 样例输出
```txt
1 4 2 3 5 6
1 2 3 4
-1
5 6 3 4 1 2
-1
1 8 6 7 2 4 3 5
```
### 样例说明
对于第一个样例,如果 $b$ = [$4,3,6$],则可以从排列 $p$ = [$1,4,2,3,5,6$] 中构造得到 $b$,因为:
- $b_1 = \max(p_1, p_2) = \max(1, 4) = 4$
- $b_2 = \max(p_3, p_4) = \max(2, 3) = 3$
- $b_3 = \max(p_5, p_6) = \max(5, 6) = 6$
### 评测数据规模
对于 $100$% 的评测数据,$1\leq t\leq 5,2\leq n\leq 2\cdot10^5,1\leq b_i\leq n$。