#include using namespace std; #define MAX 510000 long long t, sum, n; char a[MAX]; stack ans1, ans2; queue q1, q2; void solve(int p) { while(q1.empty() == 0)q1.pop(); while(q2.empty() == 0)q2.pop(); while(ans1.empty() == 0)ans1.pop(); while(ans2.empty() == 0)ans2.pop(); cin >> a; sum = 0; n = strlen(a); for(int i = 0; i < n; i++)sum += a[i] - '0'; sum %= 3; int fl = 0; if(sum == 0) { cout << a << endl; return ; } else if(sum == 1) { fl = 0; for(int i = n - 1; i >= 0; i--) { if(fl == false && (a[i] - '0') % 3 == 1) { fl = true; } else ans1.push(a[i] - '0'); } if(fl == 0)while(ans1.size() > 0)ans1.pop(); fl = 0; for(int i = n - 1; i >= 0; i--) { if(fl < 2 && (a[i] - '0') % 3 == 2) { fl++; } else ans2.push(a[i] - '0'); } if(fl < 2)while(ans2.size() > 0)ans2.pop(); } else if(sum == 2) { while(ans1.size() > 0)ans1.pop(); fl = 0; for(int i = n - 1; i >= 0; i--) { if(fl == 0 && (a[i] - '0') % 3 == 2) { fl = 1; } else ans1.push(a[i] - '0'); } if(fl == 0)while(ans1.size() > 0)ans1.pop(); fl = 0; while(ans2.size() > 0)ans2.pop(); for(int i = n - 1; i >= 0; i--) { if(fl < 2 && (a[i] - '0') % 3 == 1) { fl++; } else ans2.push(a[i] - '0'); } if(fl < 2)while(ans2.size() > 0)ans2.pop(); } if(ans1.size() == 0 && ans2.size() == 0) { cout << "-1" << endl; } else { fl = 0; while(ans1.size() > 0) { if(ans1.top() != 0 || fl == true) { q1.push(ans1.top()); fl = true; } ans1.pop(); } fl = false; while(ans2.size() > 0) { if(ans2.top() != 0 || fl == true) { q2.push(ans2.top()); fl = true; } ans2.pop(); } if(q2.size() > q1.size()) { if(q2.size() == 0)cout << "0"; else { sum = 0; while(q2.size() > 0) { sum += q2.front(); printf("%d", q2.front() ); q2.pop(); } if(sum % 3 != 0) { for(int j = 0; j < LLONG_MAX; j++)sum += j; } } } else { if(q1.size() == 0)cout << "0"; else { sum = 0; while(q1.size() > 0) { sum += q1.front(); printf("%d", q1.front() ); q1.pop(); } if(sum % 3 != 0) { for(int j = 0; j < LLONG_MAX; j++)sum += j; } } } cout << endl; } return ; } int main() { freopen("three.in", "r", stdin); freopen("three.out", "w", stdout); cin >> t; for(int i = 0; i < t; i++)solve(i); return 0; } /* 4 1033 10 5129 11 5 20 11 21 32 0 */