#include <bits/stdc++.h>
using namespace std;
#define ll long long
void solve(ll int,ll int*);
ll int min(ll int*,ll int,int);
ll int min(ll int*x,ll int l,ll int m){ //finding minimum from the index i passed towards right
//eg 12531 index passed is 1 ie elemt no 2 now checking minimum among 531 but greater than 2 ie that
ll int k=x[l]; //mini has 1
ll int mini=x[l+1]; //mini has 3
for(++l;l<m;l++){ //starting from 4,8
if(x[l]<mini && x[l]>k){ //4<8 8>4 , 8<4! 8>4
mini=x[l]; //mini=4
}
}return mini;
}//min end
void solve(ll int n,ll int*a){
ll int i,j,mi=0,pos=0,temp,flag=0;
for(i=(n-1);i>0;i--){
if(a[i]>a[i-1]){
mi=min(a,(i-1),n); //in 671 sending from 671
for(j=n-1;j>=i;j--){
if(mi==a[j]){pos=j;break;}
}
//now mi holds the minimum number from the decreasing list on right and pos stores the index
//we need to swap now the no. and the mi and reverse the rest on the right of swapped
temp=a[pos];
a[pos]=a[i-1];
a[i-1]=temp;
flag=1; //swapped
goto x;
}
}
x:if(flag){
for(j=(n-1);i<=j;i++,j--){ //reversing the rest from the swapped towards right
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}if(flag){ //an operation has occured
for(i=0;i<n;i++)cout<<a[i];
cout<<endl;
return;
}
else cout<<-1<<endl; //no operation
return;
} //solve end
int main() {
ll int t;
cin>>t;
while(t--){
ll int n,f=0,f1=0;cin>>n;
if(n==1){cout<<-1<<endl;continue;} //for all 1 digit nos
ll int i,a[n]; //declared array and index
for(i=0;i<n;i++){
cin>>a[i];
if(a[i]!=0)f++;
if(i>0 && (a[i-1]==a[i]))f1++;
}if(f==1 || f1==n-1){cout<<-1<<endl;continue;}//f=1 for cases like 0001 and f1 for cases like 1111
solve(n,a);
}return 0;}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCnZvaWQgc29sdmUobGwgaW50LGxsIGludCopOwpsbCBpbnQgbWluKGxsIGludCosbGwgaW50LGludCk7CgpsbCBpbnQgbWluKGxsIGludCp4LGxsIGludCBsLGxsIGludCBtKXsgLy9maW5kaW5nIG1pbmltdW0gZnJvbSB0aGUgaW5kZXggaSBwYXNzZWQgdG93YXJkcyByaWdodCAKLy9lZyAxMjUzMSBpbmRleCBwYXNzZWQgaXMgMSBpZSBlbGVtdCBubyAyIG5vdyBjaGVja2luZyBtaW5pbXVtIGFtb25nIDUzMSBidXQgZ3JlYXRlciB0aGFuIDIgaWUgdGhhdCAKCiAgICBsbCBpbnQgaz14W2xdOyAvL21pbmkgaGFzIDEKICAgIGxsIGludCBtaW5pPXhbbCsxXTsgLy9taW5pIGhhcyAzCiAgICBmb3IoKytsO2w8bTtsKyspeyAvL3N0YXJ0aW5nIGZyb20gNCw4CiAgICAgICAgaWYoeFtsXTxtaW5pICYmIHhbbF0+ayl7IC8vNDw4IDg+NCAsIDg8NCEgOD40IAogICAgICAgICAgICBtaW5pPXhbbF07ICAvL21pbmk9NAogICAgICAgIH0KICAgIH1yZXR1cm4gbWluaTsKfS8vbWluIGVuZAp2b2lkIHNvbHZlKGxsIGludCBuLGxsIGludCphKXsgCgpsbCBpbnQgaSxqLG1pPTAscG9zPTAsdGVtcCxmbGFnPTA7CmZvcihpPShuLTEpO2k+MDtpLS0pewogICAgaWYoYVtpXT5hW2ktMV0pewogICAgICAgIG1pPW1pbihhLChpLTEpLG4pOyAvL2luIDY3MSBzZW5kaW5nIGZyb20gNjcxIAogICAgICAgIGZvcihqPW4tMTtqPj1pO2otLSl7CiAgICAgICAgICAgIGlmKG1pPT1hW2pdKXtwb3M9ajticmVhazt9CiAgICAgICAgfQogICAgICAgIC8vbm93IG1pIGhvbGRzIHRoZSBtaW5pbXVtIG51bWJlciBmcm9tIHRoZSBkZWNyZWFzaW5nIGxpc3Qgb24gcmlnaHQgYW5kIHBvcyBzdG9yZXMgdGhlIGluZGV4CiAgICAgICAgLy93ZSBuZWVkIHRvIHN3YXAgbm93IHRoZSBuby4gYW5kIHRoZSBtaSBhbmQgcmV2ZXJzZSB0aGUgcmVzdCBvbiB0aGUgcmlnaHQgb2Ygc3dhcHBlZAogICAgICAgIHRlbXA9YVtwb3NdOwogICAgICAgIGFbcG9zXT1hW2ktMV07CiAgICAgICAgYVtpLTFdPXRlbXA7CiAgICAgICAgZmxhZz0xOyAvL3N3YXBwZWQKICAgICAgICBnb3RvIHg7CiAgICB9Cn0KeDppZihmbGFnKXsKICAgIGZvcihqPShuLTEpO2k8PWo7aSsrLGotLSl7IC8vcmV2ZXJzaW5nIHRoZSByZXN0IGZyb20gdGhlIHN3YXBwZWQgdG93YXJkcyByaWdodAogICAgICAgIHRlbXA9YVtpXTsKICAgICAgICBhW2ldPWFbal07CiAgICAgICAgYVtqXT10ZW1wOwogICAgfQp9aWYoZmxhZyl7IC8vYW4gb3BlcmF0aW9uIGhhcyBvY2N1cmVkCglmb3IoaT0wO2k8bjtpKyspY291dDw8YVtpXTsKCWNvdXQ8PGVuZGw7CglyZXR1cm47CiAgICB9CiAgICBlbHNlIGNvdXQ8PC0xPDxlbmRsOyAvL25vIG9wZXJhdGlvbgogICAgcmV0dXJuOwp9IC8vc29sdmUgZW5kCmludCBtYWluKCkgewpsbCBpbnQgdDsKY2luPj50Owp3aGlsZSh0LS0pewoJbGwgaW50IG4sZj0wLGYxPTA7Y2luPj5uOwoJaWYobj09MSl7Y291dDw8LTE8PGVuZGw7Y29udGludWU7fSAgLy9mb3IgYWxsIDEgZGlnaXQgbm9zCglsbCBpbnQgaSxhW25dOyAvL2RlY2xhcmVkIGFycmF5IGFuZCBpbmRleAoJZm9yKGk9MDtpPG47aSsrKXsgCgkgICAgY2luPj5hW2ldOwoJICAgIGlmKGFbaV0hPTApZisrOwoJICAgIGlmKGk+MCAmJiAoYVtpLTFdPT1hW2ldKSlmMSsrOwoJfWlmKGY9PTEgfHwgZjE9PW4tMSl7Y291dDw8LTE8PGVuZGw7Y29udGludWU7fS8vZj0xIGZvciBjYXNlcyBsaWtlIDAwMDEgYW5kIGYxIGZvciBjYXNlcyBsaWtlIDExMTEKICAgIHNvbHZlKG4sYSk7Cn1yZXR1cm4gMDt9Cg==