Problem: You are given a sequence b_1, b_2, …, b_n. Find the lexicographically minimal permutation a_1, a_2, …, a_{2n} such that b_i = min(a_{2i-1}, a_{2i}), or determine that it is impossible.

Input

Each test contains one or more test cases. The first line contains the number of test cases t (1 ≤ t ≤ 100).

The first line of each test case consists of one integer n — the number of elements in the sequence b (1 ≤ n ≤ 100).

The second line of each test case consists of n different integers b_1, …, b_n — elements of the sequence b (1 ≤ b_i ≤ 2n).

It is guaranteed that the sum of n by all test cases doesn't exceed 100.

Output

For each test case, if there is no appropriate permutation, print one number -1.

Otherwise, print 2n integers a_1, …, a_{2n} — required lexicographically minimal permutation of numbers from 1 to 2n.

Example

Input


5
1
1
2
4 1
3
4 1 3
4
2 3 4 5
5
1 5 7 2 8


Output


1 2 
-1
4 5 1 2 3 6 
-1
1 3 5 6 7 9 2 4 8 10 

Solution (in PYTHON3):

Solution:
import sys
from collections import defaultdict, deque

inp = sys.stdin.readline
read = lambda: list(map(int, inp().split()))

def a():
	ans = ""
	for _ in range(read()[0]):
		a, b, x, y = read()
		x += 1
		y += 1
		ans += str(max(((a-x)*(b)), ((x-1)*(b)), ((a)*(b-y)), ((a)*(y-1)))) + "\n"
	print(ans)

def c():
	# ans = ""
	for _ in range(read()[0]):
		flag = 0
		n = int(inp())
		dic = dict()
		for ind, elem in enumerate(read()):
			dic[elem] = (ind*2, ind*2+1)
		arr = [None]*(2*n)
		left = set(i for i in range(1, 2*n+1)).difference(dic.keys())
		for i in dic.keys():
			elem = dic[i]
			mins = [y for y in left if y > i]
			# print(mins)
			if mins:#len(mins) > 0:
				sup =  min(mins)
				arr[elem[0]], arr[elem[1]] = i, sup
				left.remove(sup)
			else:
				flag = 1
				break
		if flag:
			print("-1")
		else:
			print(*arr)





		# flag = 0
		# n = int(inp())
		# dic = dict()#{elem : (2*next(ind), 2*ind+1) for elem in read()}
		# for ind, elem in enumerate(read()):
		# 	dic[elem] = (ind*2, ind*2+1)
		# 	ind += 1
		# left = deque(set(i for i in range(1, 2*n+1)).difference(dic.keys()))
		# # left.sort()
		# # left = (left)
		# arr = [None]*(2*n)
		# keys = list(dic.keys())
		# keys.sort()
		# for i in keys:
		# 	t = i
		# 	while not (t+1 in left):
		# 		t += 1
		# 		if t == len(left):
		# 			flag = 1
		# 			break
		# 	if flag:

		# 	arr[dic[i][0]], arr[dic[i][1]] = i, left.popleft()
		# 	if i < left[0]:
		# 		arr[dic[i][0]], arr[dic[i][1]] = i, left.popleft()
		# 	else:
		# 		flag = 1
		# 		break
		# if flag:
		# 	ans += "-1\n"
		# else:
		# 	ans += (" ").join(map(str, arr)) + "\n"
	# print(ans)



if __name__ == "__main__":
	# a()
	# b()
	c()


# 	1 2 3 4 5 6 7 8
# 	2 1 3 6 4 7 5 8


# 	1 - 1, 2 - 3
# 	2 - 7, 8 - 4
# 	5 - 3, 4 - 6
# 	7 - 5, 6 - 9
# 	8 - 9, 10 - 10

# 1 3 5 6 7 9 2 4 8 10

# 	3
# 	4
# 	6
# 	9
# 	10