#include <bits/stdc++.h>
using namespace std;
int main () {
int T;
cin >> T;
for (int i = 0; i < T; i++) {
string s;
cin >> s;
int l = s.length();
map<char, int> chara;
set<char> chara1;
for (int j = 0; j < l; j++) {
chara[s[j]] += 1;
chara1.insert(s[j]);
}
int index = 0;
vector<char> seq(chara1.size());
vector<int> seg(chara1.size());
for (int j = 0; j < l; j++) {
if (chara1.find(s[j]) != chara1.end()) {
seg[index] = chara[s[j]];
seq[index] = s[j];
chara1.erase(s[j]);
index += 1;
}
}
int maxie = 0;
int maxie_index = -1;
for (int j = 0; j < seq.size(); j++) {
if (seg[j] > maxie) {
maxie = seg[j];
maxie_index = j;
}
}
if (maxie > l - maxie + 1) {
cout << -1 << endl;
return 0;
}
index = 0;
int j = 0;
char tmp[l];
for (int t = 0; t < l; t++) {
tmp[t] = 'q';
}
while(seg[maxie_index] > 0) {
tmp[2 * j] = seq[maxie_index];
j++;
seg[maxie_index]--;
}
while (index < chara.size()) {
while (seg[index] > 0) {
if (2 * j < l) {
tmp[2 * j] = seq[index];
seg[index]--;
j++;
}
else {
if (l % 2 == 0) {
tmp[((2 * j) % l) + 1] = seq[index];
seg[index]--;
j++;
}
else {
tmp[(2 * j) % l] = seq[index];
seg[index]--;
j++;
}
}
}
index++;
if (index == maxie_index) index++;
}
string ans(tmp);
cout << ans.substr(0, l) << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG1haW4gKCkgewogICAgaW50IFQ7CiAgICBjaW4gPj4gVDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVDsgaSsrKSB7CiAgICAgICAgc3RyaW5nIHM7CiAgICAgICAgY2luID4+IHM7CiAgICAgICAgaW50IGwgPSBzLmxlbmd0aCgpOwogICAgICAgIG1hcDxjaGFyLCBpbnQ+IGNoYXJhOwogICAgICAgIHNldDxjaGFyPiBjaGFyYTE7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsOyBqKyspIHsKICAgICAgICAgICAgY2hhcmFbc1tqXV0gKz0gMTsKICAgICAgICAgICAgY2hhcmExLmluc2VydChzW2pdKTsKICAgICAgICB9CiAgICAgICAgaW50IGluZGV4ID0gMDsKICAgICAgICB2ZWN0b3I8Y2hhcj4gc2VxKGNoYXJhMS5zaXplKCkpOwogICAgICAgIHZlY3RvcjxpbnQ+IHNlZyhjaGFyYTEuc2l6ZSgpKTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGw7IGorKykgewogICAgICAgICAgICBpZiAoY2hhcmExLmZpbmQoc1tqXSkgIT0gY2hhcmExLmVuZCgpKSB7CiAgICAgICAgICAgICAgICBzZWdbaW5kZXhdID0gY2hhcmFbc1tqXV07CiAgICAgICAgICAgICAgICBzZXFbaW5kZXhdID0gc1tqXTsKICAgICAgICAgICAgICAgIGNoYXJhMS5lcmFzZShzW2pdKTsKICAgICAgICAgICAgICAgIGluZGV4ICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaW50IG1heGllID0gMDsKICAgICAgICBpbnQgbWF4aWVfaW5kZXggPSAtMTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHNlcS5zaXplKCk7IGorKykgewogICAgICAgICAgICBpZiAoc2VnW2pdID4gbWF4aWUpIHsKICAgICAgICAgICAgICAgIG1heGllID0gc2VnW2pdOwogICAgICAgICAgICAgICAgbWF4aWVfaW5kZXggPSBqOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChtYXhpZSA+IGwgLSBtYXhpZSArIDEpIHsKICAgICAgICAgICAgY291dCA8PCAtMSA8PCBlbmRsOwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgaW5kZXggPSAwOwogICAgICAgIGludCBqID0gMDsKICAgICAgICBjaGFyIHRtcFtsXTsKICAgICAgICBmb3IgKGludCB0ID0gMDsgdCA8IGw7IHQrKykgewogICAgICAgICAgICB0bXBbdF0gPSAncSc7CiAgICAgICAgfQogICAgICAgIHdoaWxlKHNlZ1ttYXhpZV9pbmRleF0gPiAwKSB7CiAgICAgICAgICAgIHRtcFsyICogal0gPSBzZXFbbWF4aWVfaW5kZXhdOwogICAgICAgICAgICBqKys7CiAgICAgICAgICAgIHNlZ1ttYXhpZV9pbmRleF0tLTsKICAgICAgICB9CiAgICAgICAgd2hpbGUgKGluZGV4IDwgY2hhcmEuc2l6ZSgpKSB7CiAgICAgICAgICAgIHdoaWxlIChzZWdbaW5kZXhdID4gMCkgewogICAgICAgICAgICAgICAgaWYgKDIgKiBqIDwgbCkgewogICAgICAgICAgICAgICAgICAgIHRtcFsyICogal0gPSBzZXFbaW5kZXhdOwogICAgICAgICAgICAgICAgICAgIHNlZ1tpbmRleF0tLTsKICAgICAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAobCAlIDIgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICB0bXBbKCgyICogaikgJSBsKSArIDFdID0gc2VxW2luZGV4XTsKICAgICAgICAgICAgICAgICAgICAgICAgc2VnW2luZGV4XS0tOwogICAgICAgICAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB0bXBbKDIgKiBqKSAlIGxdID0gc2VxW2luZGV4XTsKICAgICAgICAgICAgICAgICAgICAgICAgc2VnW2luZGV4XS0tOwogICAgICAgICAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgICAgIGlmIChpbmRleCA9PSBtYXhpZV9pbmRleCkgaW5kZXgrKzsKICAgICAgICB9CiAgICAgICAgc3RyaW5nIGFucyh0bXApOwogICAgICAgIGNvdXQgPDwgYW5zLnN1YnN0cigwLCBsKSA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0KIA==