#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t, n, i, j, k, ov = 0, rem[3] = {0};
  string s;
  cin >> s;
  n = s.length();
  for (i = 0; i < n; i++) {
    ov = (ov + s[i]) % 3;
    rem[s[i] % 3]++;
  }
  if (ov == 0) {
    cout << s;
    return (0);
  }
  if (ov == 1) {
    long long one = 0, two = 0, stat1 = 0, stat2 = 0;
    string s1, s2;
    s1.clear();
    s2.clear();
    for (i = n - 1; i >= 0; i--) {
      if (s[i] % 3 == 1 and stat1 == 0) {
        stat1 = 1;
        continue;
      }
      s1.push_back(s[i]);
    }
    reverse(s1.begin(), s1.end());
    for (i = n - 1; i >= 0; i--) {
      if (s[i] % 3 == 2 and stat2 < 2) {
        stat2++;
        continue;
      }
      s2.push_back(s[i]);
    }
    reverse(s2.begin(), s2.end());
    i = 0;
    while (i < s1.length() and s1[i] == '0') i++;
    if (i == s1.length()) i--;
    s1.erase(0, i);
    i = 0;
    while (i < s2.length() and s2[i] == '0') i++;
    if (i == s2.length()) i--;
    s2.erase(0, i);
    long long mx = max(s1.length(), s2.length());
    if (stat2 == 2 and stat1 == 1 and mx > 0) {
      if (mx == s1.length())
        cout << s1;
      else
        cout << s2;
    } else if (stat1 == 1 and s1.length() > 0) {
      cout << s1;
    } else if (stat2 == 2 and s2.length() > 0) {
      cout << s2;
    } else
      cout << -1;
  }
  if (ov == 2) {
    long long one = 0, two = 0, stat1 = 0, stat2 = 0;
    string s1, s2;
    s1.clear();
    s2.clear();
    for (i = n - 1; i >= 0; i--) {
      if (s[i] % 3 == 1 and stat1 < 2) {
        stat1++;
        continue;
      }
      s1.push_back(s[i]);
    }
    reverse(s1.begin(), s1.end());
    for (i = n - 1; i >= 0; i--) {
      if (s[i] % 3 == 2 and stat2 == 0) {
        stat2 = 1;
        continue;
      }
      s2.push_back(s[i]);
    }
    reverse(s2.begin(), s2.end());
    i = 0;
    while (i < s1.length() and s1[i] == '0') i++;
    if (i == s1.length()) i--;
    s1.erase(0, i);
    i = 0;
    while (i < s2.length() and s2[i] == '0') i++;
    if (i == s2.length()) i--;
    s2.erase(0, i);
    long long mx = max(s1.length(), s2.length());
    if (stat1 == 2 and stat2 == 1 and mx > 0) {
      if (mx == s1.length())
        cout << s1;
      else
        cout << s2;
    } else if (stat1 == 2 and s1.length() > 0) {
      cout << s1;
    } else if (stat2 == 1 and s2.length() > 0) {
      cout << s2;
    } else
      cout << -1;
  }
}
