#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int t,n,a[N],b[N];
bool check(){
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
int res1=0,res2=0;
for(int k1=i;k1<=j;k1++) res1+=a[k1],res2+=b[k1];
if(res1==res2) return 0;
}
}
return 1;
}
bool flag=0;
void bf(int cur){
if(flag) return;
if(cur>n){
if(check()){
for(int i=1;i<=n;i++) printf("%d ",b[i]);
puts("");
flag=1;
}
return;
}
for(int i=1;i<=n;i++){
b[cur]=i;
bf(cur+1);
b[cur]=0;
}
}
signed main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);a[n+1]=0;
if(n<=4){
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
flag=0;bf(1);
if(!flag) puts("-1");
continue;
}
int res1=0,res2=0,res3=0,res4=0;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
if(a[i]==n)
res1=a[i-1],res2=a[i+1],i-2>=0?res3=a[i-2]:res3=0,res4=a[i+2];
int res=0;
for(int i=n;i>=1;i--)
if(i!=res1&&i!=res2&&i!=n&&res1+res2!=i+n&&res1+res3!=i+n&&res2+res4!=i+n){
res=i;
break;
}
if(!res) puts("-1");
else{
for(int i=1;i<=n;i++){
if(a[i]!=n) printf("%d ",n);
else printf("%d ",res);
}
puts("");
}
}
return 0;
}
这个过了,是不是乱搞