#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
int n;
cin >> n;
vector<int>vec(n);
for(int i=0; i< n; ++i) {
cin >> vec[i];
}
unordered_map<int,int> mp;
for(int i=0; i<vec.size(); ++i) {
mp[vec[i]]++;
}
bool flag = true;
for(int i=1; i<vec.size(); ++i) {
if(mp[vec[i]] == 1) {
flag = false;
break;
}
}
if(!flag) {
cout << -1 << endl;
continue;
}
vector<int> ans;
int i = 0, j = 0;
while(i < vec.size()) {
while(j < vec.size() && vec[i] == vec[j]) j++;
ans.push_back(j-1);
for(int k = i; k<j-1; ++k) {
ans.push_back(k);
}
i=j;
}
for(int i=0; i<ans.size(); ++i) {
cout << ans[i] << " ";
}
cout << endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKXsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsKCiAgICAgICAgdmVjdG9yPGludD52ZWMobik7CiAgICAgICAgZm9yKGludCBpPTA7IGk8IG47ICsraSkgewogICAgICAgICAgICBjaW4gPj4gdmVjW2ldOwogICAgICAgIH0KCiAgICAgICAgdW5vcmRlcmVkX21hcDxpbnQsaW50PiBtcDsKICAgICAgICBmb3IoaW50IGk9MDsgaTx2ZWMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgbXBbdmVjW2ldXSsrOwogICAgICAgIH0KCiAgICAgICAgYm9vbCBmbGFnID0gdHJ1ZTsKICAgICAgICBmb3IoaW50IGk9MTsgaTx2ZWMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgaWYobXBbdmVjW2ldXSA9PSAxKSB7CiAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoIWZsYWcpIHsKICAgICAgICAgICAgY291dCA8PCAtMSA8PCBlbmRsOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIHZlY3RvcjxpbnQ+IGFuczsKCiAgICAgICAgaW50IGkgPSAwLCBqID0gMDsKICAgICAgICB3aGlsZShpIDwgdmVjLnNpemUoKSkgewogICAgICAgICAgICB3aGlsZShqIDwgdmVjLnNpemUoKSAmJiB2ZWNbaV0gPT0gdmVjW2pdKSBqKys7CgogICAgICAgICAgICBhbnMucHVzaF9iYWNrKGotMSk7CiAgICAgICAgICAgIGZvcihpbnQgayA9IGk7IGs8ai0xOyArK2spIHsKICAgICAgICAgICAgICAgIGFucy5wdXNoX2JhY2soayk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaT1qOwogICAgICAgIH0KCiAgICAgICAgZm9yKGludCBpPTA7IGk8YW5zLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgIGNvdXQgPDwgYW5zW2ldIDw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwoKCgogICAgfQoKfQo=