#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int n,t[100],a[100],q[100*100];
bool isOK, check;
void solve(){
vector<int> v1,v2;
v1.clear(); v2.clear();
for(int i=1; i<=n; i++)
if (a[i]>0) v1.push_back(i);
else
v2.push_back(i);
v1.push_back(v1[0]);
for(int i=0; i<v1.size()-1; i++)
{
int u,v;
u=v1[i];
v=v1[i+1];
t[u]=v;
a[v]--;
}
int j=-1;
for(int i=1; i<=n; i++)
while (a[i]>0){
j++;
if (j==v2.size()) {
cout << -1 << endl;
return;
}
t[v2[j]]=i;
a[i]--;
}
for(int i=1; i<=n; i++) cout << t[i] << ' ';
cout << endl;
}
int main(){
//freopen("test.in","r",stdin);
int total, ntest;
cin >> ntest;
while (ntest--){
cin >> n;
total = 0;
isOK = true;
memset(a, 0, sizeof(a));
memset(t, 0, sizeof(t));
for(int i=1; i<=n; i++) {
cin >> a[i];
total += a[i];
if (a[i]==n) isOK = false;
}
if (total!=n) isOK = false;
if (!isOK)
cout << -1 << endl;
else{
solve();
}
}
return 0;
}
ICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxhbGdvcml0aG0+CiAgICAjaW5jbHVkZSA8Y21hdGg+CiAgICAjaW5jbHVkZSA8Y3N0ZGlvPgogICAgI2luY2x1ZGUgPGNzdHJpbmc+CiAgICAjaW5jbHVkZSA8dmVjdG9yPgogCiAgICAgICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogICAgaW50IG4sdFsxMDBdLGFbMTAwXSxxWzEwMCoxMDBdOwogICAgYm9vbCBpc09LLCBjaGVjazsKIAp2b2lkIHNvbHZlKCl7CiAgICB2ZWN0b3I8aW50PiB2MSx2MjsKICAgIHYxLmNsZWFyKCk7IHYyLmNsZWFyKCk7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgICAgIGlmIChhW2ldPjApIHYxLnB1c2hfYmFjayhpKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHYyLnB1c2hfYmFjayhpKTsKICAgIHYxLnB1c2hfYmFjayh2MVswXSk7CiAgICBmb3IoaW50IGk9MDsgaTx2MS5zaXplKCktMTsgaSsrKQogICAgewogICAgICAgIGludCB1LHY7CiAgICAgICAgdT12MVtpXTsKICAgICAgICB2PXYxW2krMV07CiAgICAgICAgdFt1XT12OwogICAgICAgIGFbdl0tLTsKICAgIH0KICAgIGludCBqPS0xOwogICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgICAgICB3aGlsZSAoYVtpXT4wKXsKICAgICAgICAgICAgaisrOwogICAgICAgICAgICBpZiAoaj09djIuc2l6ZSgpKSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8IC0xIDw8IGVuZGw7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdFt2MltqXV09aTsKICAgICAgICAgICAgYVtpXS0tOwogICAgICAgIH0KICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspIGNvdXQgPDwgdFtpXSA8PCAnICc7CiAgICBjb3V0IDw8IGVuZGw7CiAKfQogCiAgICBpbnQgbWFpbigpewogICAgICAgIC8vZnJlb3BlbigidGVzdC5pbiIsInIiLHN0ZGluKTsKICAgICAgICBpbnQgdG90YWwsIG50ZXN0OwogICAgICAgIGNpbiA+PiBudGVzdDsKICAgICAgICB3aGlsZSAobnRlc3QtLSl7CiAgICAgICAgICAgIGNpbiA+PiBuOwogICAgICAgICAgICB0b3RhbCA9IDA7CiAgICAgICAgICAgIGlzT0sgPSB0cnVlOwogICAgICAgICAgICBtZW1zZXQoYSwgMCwgc2l6ZW9mKGEpKTsKICAgICAgICAgICAgbWVtc2V0KHQsIDAsIHNpemVvZih0KSk7CiAgICAgICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspIHsKICAgICAgICAgICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgICAgICAgICAgdG90YWwgKz0gYVtpXTsKICAgICAgICAgICAgICAgIGlmIChhW2ldPT1uKSBpc09LID0gZmFsc2U7CiAgICAgICAgICAgIH0KIAogICAgICAgICAgICBpZiAodG90YWwhPW4pIGlzT0sgPSBmYWxzZTsKICAgICAgICAgICAgaWYgKCFpc09LKQogICAgICAgICAgICAgICAgY291dCA8PCAtMSA8PCBlbmRsOwogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgIHNvbHZlKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIDA7CiAgICB9