import sys
from itertools import *
from bisect import *
from collections import *
from math import gcd
import heapq
input = lambda: sys.stdin.readline().rstrip("\r\n")
rint = lambda: int(input())
rlist = lambda: list(map(int, input().split()))
rgrid = lambda n: [rlist() for _ in range(n)]
fmin = lambda x, y: x if x < y else y
fmax = lambda x, y: x if x > y else y
# MOD = 998244353
MOD = 10**9 + 7
INF = float("inf")
def solve():
# N = rint()
S = input()
n = len(S)
count = [0] * 26
for c in S:
count[ord(c) - 97] += 1
m = max(count)
if m > (n + 1) // 2:
return -1
p = -1
ans = []
for i in range(n):
for ci in range(26):
if ci == p or count[ci] == 0:
continue
count[ci] -= 1
m = n - (i + 1)
if max(count) <= (m + 1) // 2:
ans.append(chr(ci + 97))
p = ci
break
count[ci] += 1
else:
return -1
return "".join(ans)
TT = 1
TT = rint()
for tc in range(TT):
ans = solve()
print(ans)
# print(*ans)
# print("Yes" if ans else "No")