#include<bits/stdc++.h>
using namespace std;
const int N = 1e5;
const int Prime = 1e9+7;
const int Base = 251;
//...................................................................//
#define endl '\n'
#define Int long long int
#define gcd(x, y) (__gcd(x, y))
#define lcm(x, y) ((x/gcd(x, y))*y)
#define rand(x, y) rand()%(y-x+1)+x
#define pow2(x) (1<<x)
#define pi 3.141592653589793
#define decimal(x, y) fixed<<setprecision(x)<<y
#define unsync ios_base::sync_with_stdio(0); cin.tie(0);
#define TxtI freopen("input.txt","r",stdin);
#define TxtO freopen("output.txt","w",stdout);
//...................................................................//
int main()
{
//srand(time(0));
//TxtI TxtO
unsync
int t;
cin >> t;
while(t--)
{
Int mx=0;
char mxC;
string s, ans="";
map<char, int> mp;
cin >> s;
bool taken[s.size()] = {0};
for(int i=0; i<s.size(); i++)
{
mp[s[i]]++;
if(mp[s[i]]>mx)
{
mx = mp[s[i]];
mxC = s[i];
}
}
sort(s.begin(), s.end());
if(s.size()-mp[mxC]<mp[mxC]-1) cout << -1 << endl;
else
{
while(ans.size()<s.size())
{
for(int i=0; i<s.size(); i++)
{
if(ans[ans.size()-1]!=s[i] && !taken[i] && (s.size()-ans.size()>=2*mx || s[i]==mxC))
{
ans += s[i];
mp[s[i]]--;
taken[i] = true;
mx -= (s[i]==mxC);
break;
}
}
}
cout << ans << endl;
}
}
}