#include <bits/stdc++.h>
using namespace std;
char s[100010];
int sum, l;
string s1, s2;
vector<int> a[3];
void f(string &s1) {
  l = s1.size();
  if (s1.size() == 0)
    cout << -1 << endl;
  else {
    if (s1.size() == 1 && s1[0] == '0')
      cout << s1 << endl;
    else {
      int i = 0;
      for (; i < l; i++) {
        if (s1[i] != '0') break;
      }
      if (i == l)
        cout << 0 << endl;
      else {
        for (; i < l; i++) printf("%c", s1[i]);
        cout << endl;
      }
    }
  }
}
int ff(string &s3) {
  l = s3.size();
  if (l == 0) return 0;
  if (l == 1 && s3[0] == '0') return 1;
  int i = 0;
  for (i = 0; i < l; i++)
    if (s3[i] != '0') break;
  if (l == i) return 1;
  return l - i;
}
int main() {
  scanf("%s", s);
  l = strlen(s);
  for (int i = 0; i < l; i++) {
    a[(s[i] - '0') % 3].push_back(i);
    sum += s[i] - '0';
  }
  if (sum % 3 == 0) {
    for (int i = 0; i < l; i++) s1 += s[i];
    f(s1);
  } else if (sum % 3 == 1) {
    if (a[1].size() == 0 && a[2].size() < 2) return 0 * printf("-1\n");
    if (a[2].size() >= 2)
      for (int i = 0; i < l; i++) {
        if (i != a[2][a[2].size() - 1] && i != a[2][a[2].size() - 2])
          s2 += s[i];
      }
    if (a[1].size() >= 1)
      for (int i = 0; i < l; i++) {
        if (i != a[1][a[1].size() - 1]) s1 += s[i];
      }
    if (ff(s1) > ff(s2))
      f(s1);
    else
      f(s2);
  } else if (sum % 3 == 2) {
    if (a[2].size() == 0 && a[1].size() < 2) return 0 * printf("-1\n");
    if (a[1].size() >= 2)
      for (int i = 0; i < l; i++) {
        if (i != a[1][a[1].size() - 1] && i != a[1][a[1].size() - 2])
          s2 += s[i];
      }
    if (a[2].size() >= 1)
      for (int i = 0; i < l; i++) {
        if (i != a[2][a[2].size() - 1]) s1 += s[i];
      }
    if (ff(s1) > ff(s2))
      f(s1);
    else
      f(s2);
  }
  return 0;
}
