#include <bits/stdc++.h>
int q[100005], p[100005], vis[100005];
int main() {
  int n, t;
  scanf("%d", &t);
  while (t--) {
    scanf("%d", &n);
    int flag = 0;
    int cnt = 0;
    memset(vis, 0, sizeof(vis));
    int i, j;
    for (i = 1; i <= n; i++) {
      scanf("%d", &q[i]);
      vis[q[i]]++;
    }
    for (i = 1; i <= n; i++) {
      if (vis[q[i]] == 1)
        p[i] = q[i];
      else if (vis[q[i]] > 1) {
        p[i] = q[i];
        int tmp = vis[q[i]];
        for (j = q[i]; j > 0; j--) {
          if (!vis[j]) {
            p[++i] = j;
            flag = 1;
            vis[j] = 1;
            tmp--;
          }
          if (tmp == 1) break;
        }
        if (!flag) cnt = 1;
        flag = 0;
      }
    }
    if (cnt)
      printf("-1\n");
    else
      for (i = 1; i <= n; i++) {
        if (i == n)
          printf("%d\n", p[i]);
        else
          printf("%d ", p[i]);
      }
  }
}
