#include <bits/stdc++.h>
using namespace std;
template <typename T>
using second = set<T>;
template <typename T>
using v = vector<T>;
const int Max = 2e5 + 100;
const int Mx = 5e1 + 10;
const int Len = 1e6;
const int MOD = 1e9 + 7;
const long long INF = 1e18;
int A[Max];
bool usedNum[Max];
int main() {
  int q;
  cin >> q;
  while (q--) {
    int n;
    cin >> n;
    bool able = true;
    fill(usedNum, usedNum + 2 * n + 100, false);
    fill(A, A + 2 * n + 100, -1);
    for (int i = 0; i < n; i++) {
      cin >> A[2 * i];
      if (!usedNum[A[2 * i]]) {
        usedNum[A[2 * i]] = true;
      } else {
        able = false;
      }
    }
    for (int i = 1; i < 2 * n; i += 2) {
      int trg = -1;
      for (int j = A[i - 1] + 1; j <= 2 * n; j++) {
        if (!usedNum[j]) {
          trg = j;
          usedNum[trg] = true;
          break;
        }
      }
      A[i] = trg;
    }
    for (int i = 0; i < 2 * n; i++) {
      if (A[i] == -1) able = false;
    }
    if (able) {
      cout << "";
      for (int i = 0; i < 2 * n; i++) {
        cout << A[i] << ' ';
      }
      cout << '\n';
    } else {
      cout << -1 << '\n';
    }
  }
}
