#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define pb emplace_back
#define mp make_pair
#define fi first
#define se second
#define all(v) v.begin(),v.end()
#define LL_MAX LLONG_MAX
void out(vector<int>&a){for(int i=0;i<a.size();i++) cout<<a[i];}
signed main()
{
int t=1;
cin>>t;
while(t--)
{
int n,i;
cin>>n;
vector<int>a(n,0),b(n,0),v;
for(i=0;i<n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(all(b));
reverse(all(b));
if(a==b)
{
cout<<-1<<endl;
continue;
}
set<pair<int,int>>ss;
int mx=-1;
int in=n+10;
for(i=n-1;i>=0;i--)
{
if(a[i]>=mx)
{
ss.insert(mp(a[i],i));
mx=a[i];
}
else
{
pair<int, int> p = { a[i], LL_MAX };
auto low = upper_bound(all(ss), p);
in= (*low).se;
int temp=a[i];
a[i]=a[in];
a[in]=temp;
ss.erase(low);
ss.insert(mp(temp,2));
in=i;
break;
}
}
for(auto it=ss.begin();it!=ss.end();++it)
v.pb((*it).fi);
int xx=0;
sort(all(v));
for(i=in+1;i<n;i++)
{
a[i]=v[xx];
xx++;
}
out(a);
cout<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyBpbnQKI2RlZmluZSBwYiBlbXBsYWNlX2JhY2sgCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgZmkgZmlyc3QgCiNkZWZpbmUgc2Ugc2Vjb25kIAojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksdi5lbmQoKQojZGVmaW5lIExMX01BWCBMTE9OR19NQVggCnZvaWQgb3V0KHZlY3RvcjxpbnQ+JmEpe2ZvcihpbnQgaT0wO2k8YS5zaXplKCk7aSsrKSBjb3V0PDxhW2ldO30gCgpzaWduZWQgbWFpbigpCnsKIAogCgppbnQgIHQ9MTsKY2luPj50Owp3aGlsZSh0LS0pCnsKICAgICAgICAgICAgIAogCiAKICAgICAgICAgICAgIGludCAgbixpOwogCiAKICAgICAgICAgICAgICAgICAgY2luPj5uOwogCiAKIAogICAgICAgICAgICB2ZWN0b3I8aW50PmEobiwwKSxiKG4sMCksdjsKIAogICAgICAgICAgICBmb3IoaT0wO2k8bjtpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgY2luPj5hW2ldOwogICAgICAgICAgICAgICBiW2ldPWFbaV07CiAgICAgICAgICAgIH0KICAgICAgIAoKICAgICAgICAgICAgc29ydChhbGwoYikpOwogICAgICAgICAgICByZXZlcnNlKGFsbChiKSk7CgogICAgICAgICAgICBpZihhPT1iKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3V0PDwtMTw8ZW5kbDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzZXQ8cGFpcjxpbnQsaW50Pj5zczsKICAgICAgICAgICAgICAgIGludCBteD0tMTsKICAgICAgICAgICAgICAgIGludCBpbj1uKzEwOwoKICAgICAgICAgICAgZm9yKGk9bi0xO2k+PTA7aS0tKQogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgaWYoYVtpXT49bXgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3MuaW5zZXJ0KG1wKGFbaV0saSkpOwogICAgICAgICAgICAgICAgICAgIG14PWFbaV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcGFpcjxpbnQsIGludD4gcCA9IHsgYVtpXSwgTExfTUFYIH07CiAgICAgICAgICAgICAgICAgICAgYXV0byBsb3cgPSB1cHBlcl9ib3VuZChhbGwoc3MpLCBwKTsKICAgICAgICAgICAgICAgICAgICAgaW49ICgqbG93KS5zZTsKICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcD1hW2ldOwogICAgICAgICAgICAgICAgICAgIGFbaV09YVtpbl07IAogICAgICAgICAgICAgICAgICAgIGFbaW5dPXRlbXA7CiAgICAgICAgICAgICAgICAgICAgc3MuZXJhc2UobG93KTsKICAgICAgICAgICAgICAgICAgICBzcy5pbnNlcnQobXAodGVtcCwyKSk7CiAgICAgICAgICAgICAgICAgICAgaW49aTsKCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgCiAgICAgICAgICAgIGZvcihhdXRvIGl0PXNzLmJlZ2luKCk7aXQhPXNzLmVuZCgpOysraXQpCiAgICAgICAgICAgICAgICAgICAgdi5wYigoKml0KS5maSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgeHg9MDsKICAgICAgICAgICAgc29ydChhbGwodikpOwogICAgICAgICAgICBmb3IoaT1pbisxO2k8bjtpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGFbaV09dlt4eF07CiAgICAgICAgICAgICAgICB4eCsrOwogICAgICAgICAgICB9CiAgICAgICAgIAoKICAgICAgICAgICAgb3V0KGEpOwogICAgICAgICAgICBjb3V0PDxlbmRsOwoKICAgICAgICAgICAgCgoKICAgICAgICAgICAgCiAKIAp9Cn0=