#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
string S;
cin >> S;
int n = S.size();
vector<int> freq(26, 0);
for (char ch : S) freq[ch - 'a']++;
int maxFreq = *max_element(freq.begin(), freq.end());
if (maxFreq > (n + 1) / 2) {
cout << "-1\n";
continue;
}
priority_queue<pair<char, int>, vector<pair<char, int>>, greater<>> pq;
for (int i = 0; i < 26; ++i) {
if (freq[i]) pq.push({char('a' + i), freq[i]});
}
string result;
pair<char, int> prev = {'#', 0};
while (!pq.empty()) {
vector<pair<char, int>> buffer;
bool placed = false;
while (!pq.empty()) {
auto [ch, f] = pq.top(); pq.pop();
if (ch != prev.first) {
result += ch;
if (f - 1 > 0) buffer.push_back({ch, f - 1});
if (prev.second > 0) buffer.push_back(prev);
prev = {ch, f - 1};
placed = true;
break;
} else {
buffer.push_back({ch, f});
}
}
if (!placed) {
cout << "-1\n";
goto nextTest;
}
for (auto &[ch, f] : buffer) {
pq.push({ch, f});
}
}
cout << result << "\n";
nextTest: continue;
}
return 0;
}