#include #include #include #include #define endl '\n' using namespace std; ifstream fin("three.in"); ofstream fout("three.out"); int main() { ios :: sync_with_stdio(false); fin.tie(NULL); fout.tie(NULL); int T; fin >> T; while (T--) { string s; fin >> s; int n = s.size(); int cnt1 = 0, cnt2 = 0; for (int i = 0; i < n; ++ i) { if ((s[i] - '0') % 3 == 1) cnt1++; else if ((s[i] - '0') % 3 == 2) cnt2++; } if ((cnt1 + 2 * cnt2) % 3 == 0) fout << s << endl; else if ((cnt1 + 2 * cnt2) % 3 == 1) { string s1 = "", s2 = ""; if (cnt1 > 0) { s1 = s; for (int i = n - 1; i >= 0; -- i) { if ((s1[i] - '0') % 3 == 1) { s1[i] = 'z'; break; } } } if (cnt2 > 1) { s2 = s; for (int i = n - 1; i >= 0; -- i) { if ((s2[i] - '0') % 3 == 2) { s2[i] = 'z'; break; } } for (int i = n - 1; i >= 0; -- i) { if (s2[i] != 'z' and (s2[i] - '0') % 3 == 2) { s2[i] = 'z'; break; } } } string s11 = ""; for (int i = 0; i < s1.size(); ++ i) { if (s1[i] != 'z') s11 += s1[i]; } int k = 0; while (k < s11.size() - 1 and s11[k] == '0') k++; string s12 = ""; for (int i = k; i < s11.size(); ++ i) { s12 += s11[i]; } string s21 = ""; for (int i = 0; i < s2.size(); ++ i) { if (s2[i] != 'z') s21 += s2[i]; } k = 0; while (k < s21.size() - 1 and s21[k] == '0') k++; string s22 = ""; for (int i = k; i < s21.size(); ++ i) { s22 += s21[i]; } if (s12.size() > s22.size()) s = s12; else s = s22; if (s.size() == 0) fout << -1 << endl; else fout << s << endl; } else { string s1 = "", s2 = ""; if (cnt2 > 0) { s1 = s; for (int i = n - 1; i >= 0; -- i) { if ((s1[i] - '0') % 3 == 2) { s1[i] = 'z'; break; } } } if (cnt1 > 1) { s2 = s; for (int i = n - 1; i >= 0; -- i) { if ((s2[i] - '0') % 3 == 1) { s2[i] = 'z'; break; } } for (int i = n - 1; i >= 0; -- i) { if (s2[i] != 'z' and (s2[i] - '0') % 3 == 1) { s2[i] = 'z'; break; } } } string s11 = ""; for (int i = 0; i < s1.size(); ++ i) { if (s1[i] != 'z') s11 += s1[i]; } int k = 0; while (k < s11.size() - 1 and s11[k] == '0') k++; string s12 = ""; for (int i = k; i < s11.size(); ++ i) { s12 += s11[i]; } string s21 = ""; for (int i = 0; i < s2.size(); ++ i) { if (s2[i] != 'z') s21 += s2[i]; } k = 0; while (k < s21.size() - 1 and s21[k] == '0') k++; string s22 = ""; for (int i = k; i < s21.size(); ++ i) { s22 += s21[i]; } if (s12.size() > s22.size()) s = s12; else s = s22; if (s.size() == 0) fout << -1 << endl; else fout << s << endl; } } return 0; }