/*~~~~~~~~~~~~~~~~~~~~~~~*/
/* */
/* */
/* */
/* ©raisinten */
/* Darshan Sen */
/* */
/* */
/* */
/*~~~~~~~~~~~~~~~~~~~~~~~*/
#include<bits/stdc++.h>
using namespace std;
#define eb emplace_back
#define pb push_back
#define ins insert
#define mp make_pair
#define len(s) s.length()
#define repii(i,l,r) for(i = l; i <= r; ++i)
#define repin(i,l,r) for(i = l; i < r; ++i)
#define repdi(i,r,l) for(i = r; i >= l; --i)
#define repdn(i,r,l) for(i = r; i > r; --i)
#define endl "\n"
#define all(v) v.begin(), v.end()
#define mem(n,m) memset(n, m, sizeof(n))
#define pii pair<int, int >
#define pll pair<long long ,long long >
#define usuu unordered_set<unsigned >
#define usii unordered_set<int >
#define usll unordered_set<long long >
#define suu set<unsigned >
#define sii set<int >
#define sll set<long long >
#define vec vector
#define vuu vector<unsigned >
#define vii vector<int >
#define vbb vector<bool >
#define vll vector<long long >
#define vlu vector<long long unsigned >
#define mll map<long long , long long >
#ifdef _WIN32
#define gc getchar
#else
#define gc getchar_unlocked
#endif
#define ret return 0
#define what_is(x) cout << #x << " is: " << x << endl;
#define boost ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL)
#define MOD 1000000007
#define PI 3.14159265358979323846
typedef long long ll;
typedef long long unsigned llu;
typedef long double ldo;
typedef double db;
template <typename T>
void fs (T& x) {
x ^= x;
bool neg = false;
register char ch = gc();
while ((ch != '-') and (ch < '0' or ch > '9'))
ch = gc();
if (ch == '-') {
neg = true;
ch = gc();
}
for(; ch >= '0' and ch <= '9'; ch = gc())
x = (x << 1) + (x << 3) + ch - 48;
if (neg)
x *= -1;
}
template <typename T>
void showc (T b, T e) {
for (auto it = b; it != e; ++it)
cout << (*it) << " ";
cout << endl;
}
///////////////////////////////////////////////////////////
int main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
boost;
// int T;
// fs(T);
// while (T--) {
// int N;
// fs(N);
// int i;
// vii V(N);
// for (auto& e : V)
// fs(e);
// if (N == 1)
// cout << -1;
// else
// if (next_permutation(all(V)))
// repin (i, 0, N)
// cout << V[i];
// else
// cout << -1;
// cout << endl;
// }
int T;
fs(T);
while (T--) {
int N;
fs(N);
int i;
stack<int > S;
stack<int > temp;
stack<int > another;
repin (i, 0, N) {
int buffer;
fs(buffer);
S.push(buffer);
}
if (N == 1) {
cout << -1;
} else {
int var = S.top();
S.pop();
temp.push(var);
i = 1;
while (!S.empty() and S.top() >= temp.top()) {
++i;
var = S.top();
S.pop();
temp.push(var);
}
// temp descending
if (i == N) {
// descending
cout << -1;
} else {
// turning point = less than max(temp)
int last = S.top();
// what_is(last);
S.pop();
// for output
while (!S.empty()) {
var = S.top();
S.pop();
another.push(var);
}
while (!another.empty()) {
var = another.top();
another.pop();
cout << var;
}
// target = just greater than last
int target = 9;
while (!temp.empty()) {
var = temp.top();
temp.pop();
if (last < var)
target = min(target, var);
another.push(var);
}
cout << target;
// another ascending
// cout << " ";
bool targfound = false;
bool lasplaced = false;
while (!another.empty()) {
var = another.top();
if (var == target and targfound == false) {
targfound = true;
another.pop();
continue;
}
if (last == min(last, var) and lasplaced == false) {
lasplaced = true;
cout << last << var;
another.pop();
continue;
}
another.pop();
cout << var;
}
if (lasplaced == false)
cout << last;
}
}
cout << endl;
}
ret;
}
Lyp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fiovCi8qCQkJCQkJICovCi8qCQkJCQkJICovCi8qCQkJCQkJICovCi8qCQnCqXJhaXNpbnRlbgkJICovCi8qCQlEYXJzaGFuIFNlbgkJICovCi8qCQkJCQkJICovCi8qCQkJCQkJICovCi8qCQkJCQkJICovCi8qfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4qLwoKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBpbnMgaW5zZXJ0CiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgbGVuKHMpIHMubGVuZ3RoKCkKI2RlZmluZSByZXBpaShpLGwscikJZm9yKGkgPSBsOyBpIDw9IHI7ICsraSkKI2RlZmluZSByZXBpbihpLGwscikJZm9yKGkgPSBsOyBpIDwgIHI7ICsraSkKI2RlZmluZSByZXBkaShpLHIsbCkJZm9yKGkgPSByOyBpID49IGw7IC0taSkKI2RlZmluZSByZXBkbihpLHIsbCkJZm9yKGkgPSByOyBpID4gIHI7IC0taSkKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLCB2LmVuZCgpCiNkZWZpbmUgbWVtKG4sbSkgbWVtc2V0KG4sIG0sIHNpemVvZihuKSkKI2RlZmluZSBwaWkgcGFpcjxpbnQsIGludCA+CiNkZWZpbmUgcGxsIHBhaXI8bG9uZyBsb25nICxsb25nIGxvbmcgPgojZGVmaW5lIHVzdXUgdW5vcmRlcmVkX3NldDx1bnNpZ25lZCA+CiNkZWZpbmUgdXNpaSB1bm9yZGVyZWRfc2V0PGludCA+CiNkZWZpbmUgdXNsbCB1bm9yZGVyZWRfc2V0PGxvbmcgbG9uZyA+CiNkZWZpbmUgc3V1IHNldDx1bnNpZ25lZCA+CiNkZWZpbmUgc2lpIHNldDxpbnQgPgojZGVmaW5lIHNsbCBzZXQ8bG9uZyBsb25nID4KI2RlZmluZSB2ZWMgdmVjdG9yCiNkZWZpbmUgdnV1IHZlY3Rvcjx1bnNpZ25lZCA+IAojZGVmaW5lIHZpaSB2ZWN0b3I8aW50ID4gCiNkZWZpbmUgdmJiIHZlY3Rvcjxib29sID4gCiNkZWZpbmUgdmxsIHZlY3Rvcjxsb25nIGxvbmcgPgojZGVmaW5lIHZsdSB2ZWN0b3I8bG9uZyBsb25nIHVuc2lnbmVkID4KI2RlZmluZSBtbGwgbWFwPGxvbmcgbG9uZyAsIGxvbmcgbG9uZyA+CiNpZmRlZglfV0lOMzIKI2RlZmluZSBnYwlnZXRjaGFyCiNlbHNlCiNkZWZpbmUgZ2MJZ2V0Y2hhcl91bmxvY2tlZAojZW5kaWYKI2RlZmluZSByZXQgcmV0dXJuIDAKI2RlZmluZSB3aGF0X2lzKHgpIGNvdXQgPDwgI3ggPDwgIiBpczogIiA8PCB4IDw8IGVuZGw7CgojZGVmaW5lIGJvb3N0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKE5VTEwpLCBjb3V0LnRpZShOVUxMKQojZGVmaW5lIE1PRCAgIDEwMDAwMDAwMDcKI2RlZmluZSBQSQkgIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYKCnR5cGVkZWYgbG9uZyBsb25nICAgCQkJbGw7CnR5cGVkZWYgbG9uZyBsb25nIHVuc2lnbmVkCQlsbHU7CnR5cGVkZWYgbG9uZyBkb3VibGUJCQkJbGRvOwp0eXBlZGVmIGRvdWJsZQkJCQkJZGI7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBmcyAoVCYgeCkgewoJeCBePSB4OwoJYm9vbCBuZWcgPSBmYWxzZTsKCXJlZ2lzdGVyIGNoYXIgY2ggPSBnYygpOwoJd2hpbGUgKChjaCAhPSAnLScpIGFuZCAoY2ggPCAnMCcgb3IgY2ggPiAnOScpKQoJCWNoID0gZ2MoKTsKCWlmIChjaCA9PSAnLScpIHsKCQluZWcgPSB0cnVlOwoJCWNoID0gZ2MoKTsKCX0KCWZvcig7IGNoID49ICcwJyBhbmQgY2ggPD0gJzknOyBjaCA9IGdjKCkpCgkJeCA9ICh4IDw8IDEpICsgKHggPDwgMykgKyBjaCAtIDQ4OwoJaWYgKG5lZykKCQl4ICo9IC0xOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBzaG93YyAoVCBiLCBUIGUpIHsKCWZvciAoYXV0byBpdCA9IGI7IGl0ICE9IGU7ICsraXQpCgkJY291dCA8PCAoKml0KSA8PCAiICI7Cgljb3V0IDw8IGVuZGw7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgppbnQgbWFpbigpCXsKCSNpZmRlZiBMT0NBTAoJZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CglmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwoJI2VuZGlmCgoJYm9vc3Q7CgoJLy8gaW50IFQ7CgkvLyBmcyhUKTsKCS8vIHdoaWxlIChULS0pIHsKCS8vIAlpbnQgTjsKCS8vIAlmcyhOKTsKCS8vIAlpbnQgaTsKCS8vIAl2aWkgVihOKTsKCS8vIAlmb3IgKGF1dG8mIGUgOiBWKQoJLy8gCQlmcyhlKTsKCS8vIAlpZiAoTiA9PSAxKQoJLy8gCQljb3V0IDw8IC0xOwoJLy8gCWVsc2UKCS8vIAkJaWYgKG5leHRfcGVybXV0YXRpb24oYWxsKFYpKSkKCS8vIAkJCXJlcGluIChpLCAwLCBOKQoJLy8gCQkJCWNvdXQgPDwgVltpXTsKCS8vIAkJZWxzZQoJLy8gCQkJY291dCA8PCAtMTsKCS8vIAljb3V0IDw8IGVuZGw7CgkvLyB9CgoJaW50IFQ7CglmcyhUKTsKCXdoaWxlIChULS0pIHsKCQlpbnQgTjsKCQlmcyhOKTsKCQlpbnQgaTsKCQlzdGFjazxpbnQgPiBTOwoJCXN0YWNrPGludCA+IHRlbXA7CgkJc3RhY2s8aW50ID4gYW5vdGhlcjsKCQlyZXBpbiAoaSwgMCwgTikgewoJCQlpbnQgYnVmZmVyOwoJCQlmcyhidWZmZXIpOwoJCQlTLnB1c2goYnVmZmVyKTsKCQl9CgkJaWYgKE4gPT0gMSkgewoJCQljb3V0IDw8IC0xOwoJCX0gZWxzZSB7CgkJCWludCB2YXIgPSBTLnRvcCgpOwoJCQlTLnBvcCgpOwoJCQl0ZW1wLnB1c2godmFyKTsKCQkJCgkJCWkgPSAxOwoKCQkJd2hpbGUgKCFTLmVtcHR5KCkgYW5kIFMudG9wKCkgPj0gdGVtcC50b3AoKSkgewoJCQkJKytpOwoJCQkJdmFyID0gUy50b3AoKTsKCQkJCVMucG9wKCk7CgkJCQl0ZW1wLnB1c2godmFyKTsKCQkJfQoJCQkvLyB0ZW1wIGRlc2NlbmRpbmcKCgkJCWlmIChpID09IE4pIHsKCQkJCS8vIGRlc2NlbmRpbmcKCQkJCWNvdXQgPDwgLTE7CgkJCX0gZWxzZSB7CgkJCQkvLyB0dXJuaW5nIHBvaW50ID0gbGVzcyB0aGFuIG1heCh0ZW1wKQoJCQkJaW50IGxhc3QgPSBTLnRvcCgpOwoJCQkJLy8gd2hhdF9pcyhsYXN0KTsKCQkJCVMucG9wKCk7CgkJCQkKCQkJCS8vIGZvciBvdXRwdXQKCQkJCXdoaWxlICghUy5lbXB0eSgpKSB7CgkJCQkJdmFyID0gUy50b3AoKTsKCQkJCQlTLnBvcCgpOwoJCQkJCWFub3RoZXIucHVzaCh2YXIpOwoJCQkJfQoJCQkJd2hpbGUgKCFhbm90aGVyLmVtcHR5KCkpIHsKCQkJCQl2YXIgPSBhbm90aGVyLnRvcCgpOwoJCQkJCWFub3RoZXIucG9wKCk7CgkJCQkJY291dCA8PCB2YXI7CgkJCQl9CgkJCQkKCQkJCS8vIHRhcmdldCA9IGp1c3QgZ3JlYXRlciB0aGFuIGxhc3QKCQkJCWludCB0YXJnZXQgPSA5OwoJCQkJd2hpbGUgKCF0ZW1wLmVtcHR5KCkpIHsKCQkJCQl2YXIgPSB0ZW1wLnRvcCgpOwoJCQkJCXRlbXAucG9wKCk7CgkJCQkJaWYgKGxhc3QgPCB2YXIpCgkJCQkJCXRhcmdldCA9IG1pbih0YXJnZXQsIHZhcik7CgkJCQkJYW5vdGhlci5wdXNoKHZhcik7CgkJCQl9CgkJCQljb3V0IDw8IHRhcmdldDsKCQkJCS8vIGFub3RoZXIgYXNjZW5kaW5nCgkJCQkKCQkJCS8vIGNvdXQgPDwgIiAiOwoKCQkJCWJvb2wgdGFyZ2ZvdW5kID0gZmFsc2U7CgkJCQlib29sIGxhc3BsYWNlZCA9IGZhbHNlOwoJCQkJd2hpbGUgKCFhbm90aGVyLmVtcHR5KCkpIHsKCQkJCQl2YXIgPSBhbm90aGVyLnRvcCgpOwoKCQkJCQlpZiAodmFyID09IHRhcmdldCBhbmQgdGFyZ2ZvdW5kID09IGZhbHNlKSB7CgkJCQkJCXRhcmdmb3VuZCA9IHRydWU7CgkJCQkJCWFub3RoZXIucG9wKCk7CgkJCQkJCWNvbnRpbnVlOwoJCQkJCX0KCgkJCQkJaWYgKGxhc3QgPT0gbWluKGxhc3QsIHZhcikgYW5kIGxhc3BsYWNlZCA9PSBmYWxzZSkgewoJCQkJCQlsYXNwbGFjZWQgPSB0cnVlOwoJCQkJCQljb3V0IDw8IGxhc3QgPDwgdmFyOwoJCQkJCQlhbm90aGVyLnBvcCgpOwoJCQkJCQljb250aW51ZTsKCQkJCQl9CgoJCQkJCWFub3RoZXIucG9wKCk7CgoJCQkJCWNvdXQgPDwgdmFyOwoJCQkJfQoJCQkJaWYgKGxhc3BsYWNlZCA9PSBmYWxzZSkKCQkJCQljb3V0IDw8IGxhc3Q7CgkJCX0KCQl9CgkJY291dCA8PCBlbmRsOwoJfQoKCXJldDsKfQ==