#include <bits/stdc++.h>   using namespace std;   int main() {     int i, j, k, l, m, n, f, t;     string s, s1, s3, s4;     while (cin >> s) {       s1 = s;       k = 0;       for (i = 0; i < s.size(); i++) {         k += s[i] -  0 ;       }       k = k % 3;       if (k == 0) {         cout << s << endl;       } else if (k == 1) {         f = 0;         for (i = s.size() - 1; i >= 0; i--) {           if ((s[i] -  0 ) % 3 == 1) {             s.erase(s.begin() + i);             f = 1;             break;           }         }         if (f == 0) {           t = 0;           for (i = s.size() - 1; i >= 0; i--) {             if ((s[i] -  0 ) % 3 == 2) {               s.erase(s.begin() + i);               t++;             }             if (t == 2) {               f = 1;               break;             }           }           if (t != 2 || s ==   ) {             cout << -1 << endl;           } else {             t = 0;             s3 = s;             for (i = 0; i < s.size(); i++) {               if (s[i] ==  0 ) {                 s.erase(s.begin() + i);                 i--;               } else {                 break;               }             }             if (s ==    && s3.size() > 0)               cout << 0 << endl;             else               cout << s << endl;           }         } else {           t = 0;           for (i = s1.size() - 1; i >= 0; i--) {             if ((s1[i] -  0 ) % 3 == 2) {               s1.erase(s1.begin() + i);               t++;             }             if (t == 2) {               break;             }           }           if (t == 2) {             s3 = s;             for (i = 0; i < s.size(); i++) {               if (s[i] ==  0 ) {                 s.erase(s.begin() + i);                 i--;               } else {                 break;               }             }             for (i = 0; i < s1.size(); i++) {               if (s1[i] ==  0 ) {                 s1.erase(s1.begin() + i);                 i--;               } else {                 break;               }             }             if (s == s1 && s ==    && s3.size() > 0) {               cout << 0 << endl;             } else if (s == s1 && s ==   ) {               cout << -1 << endl;             } else if (s.size() > s1.size()) {               cout << s << endl;             } else {               cout << s1 << endl;             }           } else {             if (s ==   ) {               cout << -1 << endl;             } else {               t = 0;               s3 = s;               for (i = 0; i < s.size(); i++) {                 if (s[i] ==  0 ) {                   s.erase(s.begin() + i);                   i--;                 } else {                   break;                 }               }               if (s ==    && s3.size() > 0)                 cout << 0 << endl;               else                 cout << s << endl;             }           }         }       } else if (k == 2) {         f = 0;         for (i = s.size() - 1; i >= 0; i--) {           if ((s[i] -  0 ) % 3 == 2) {             s.erase(s.begin() + i);             f = 1;             break;           }         }         if (f == 0) {           t = 0;           for (i = s.size() - 1; i >= 0; i--) {             if ((s[i] -  0 ) % 3 == 1) {               s.erase(s.begin() + i);               t++;             }             if (t == 2) {               f = 1;               break;             }           }           if (t != 2 || s ==   ) {             cout << -1 << endl;           } else {             t = 0;             s3 = s;             for (i = 0; i < s.size(); i++) {               if (s[i] ==  0 ) {                 s.erase(s.begin() + i);                 i--;               } else {                 break;               }             }             if (s ==    && s3.size() > 0)               cout << 0 << endl;             else               cout << s << endl;           }         } else {           t = 0;           for (i = s1.size() - 1; i >= 0; i--) {             if ((s1[i] -  0 ) % 3 == 1) {               s1.erase(s1.begin() + i);               t++;             }             if (t == 2) {               break;             }           }           if (t == 2) {             s3 = s;             for (i = 0; i < s.size(); i++) {               if (s[i] ==  0 ) {                 s.erase(s.begin() + i);                 i--;               } else {                 break;               }             }             for (i = 0; i < s1.size(); i++) {               if (s1[i] ==  0 ) {                 s1.erase(s1.begin() + i);                 i--;               } else {                 break;               }             }             if (s == s1 && s ==    && s3.size() > 0) {               cout << 0 << endl;             } else if (s == s1 && s ==   ) {               cout << -1 << endl;             } else if (s.size() > s1.size()) {               cout << s << endl;             } else {               cout << s1 << endl;             }           } else {             if (s ==   ) {               cout << -1 << endl;             } else {               t = 0;               s3 = s;               for (i = 0; i < s.size(); i++) {                 if (s[i] ==  0 ) {                   s.erase(s.begin() + i);                   i--;                 } else {                   break;                 }               }               if (s ==    && s3.size() > 0)                 cout << 0 << endl;               else                 cout << s << endl;             }           }         }       }     }     return 0;   }