#include <bits/stdc++.h>
using namespace std;
const long long inf = 1000 * 1000 * 1000 + 7;
const int mod = 1000 * 1000 * 1000 + 9;
const int num = 1000 * 1000 + 7;
const int N = 1000 + 7;
const double PI = 3.1415926535897932384626433832795;
int ux_x[5] = {0, 0, 1, -1};
int ux_y[5] = {1, -1, 0, 0};
int n, t, m, k;
long long a[num];
bool used[num];
long long ans = 0, ans1 = 0;
void solve() {
  string s;
  cin >> s;
  vector<int> v1, v2;
  for (int i = 0; i < s.length(); ++i) {
    int e = s[i] - '0';
    ans += e;
    if (e % 3 == 1) {
      v1.push_back(i);
    }
    if (e % 3 == 2) {
      v2.push_back(i);
    }
  }
  reverse(v1.begin(), v1.end());
  reverse(v2.begin(), v2.end());
  if (ans % 3 == 0) {
    cout << s << endl;
    exit(0);
  }
  if (s.length() == 1) {
    cout << -1;
    exit(0);
  }
  if (ans % 3 == 1) {
    if (v1.size() == 0) {
      if (v2.size() < 1 || s.length() == 2) {
        cout << -1;
        exit(0);
      }
      s.erase(s.begin() + v2[0]);
      s.erase(s.begin() + v2[1]);
      if (s.length() == 1) {
        cout << s << endl;
        exit(0);
      }
      int e = 0;
      while (e < s.length() && s[e] == '0') e++;
      if (e == s.length()) {
        cout << 0;
        exit(0);
      }
      for (int i = e; i < s.length(); ++i) {
        cout << s[i];
      }
      exit(0);
    } else {
      if (v1[0] == 0 && s.length() > 2 && s[1] == '0' && s[2] == '0' &&
          v2.size() > 1) {
        s.erase(s.begin() + v2[0]);
        s.erase(s.begin() + v2[1]);
        if (s.length() == 1) {
          cout << s << endl;
          exit(0);
        }
        int e = 0;
        while (e < s.length() && s[e] == '0') e++;
        if (e == s.length()) {
          cout << 0;
          exit(0);
        }
        for (int i = e; i < s.length(); ++i) {
          cout << s[i];
        }
        exit(0);
      }
      s.erase(s.begin() + v1[0]);
      if (s.length() == 1) {
        cout << s << endl;
        exit(0);
      }
      int e = 0;
      while (e < s.length() && s[e] == '0') e++;
      if (e == s.length()) {
        cout << 0;
        exit(0);
      }
      for (int i = e; i < s.length(); ++i) {
        cout << s[i];
      }
      exit(0);
    }
  } else {
    if (v2.size() == 0) {
      if (v1.size() < 1 || s.length() == 2) {
        cout << -1;
        exit(0);
      }
      s.erase(s.begin() + v1[0]);
      s.erase(s.begin() + v1[1]);
      if (s.length() == 1) {
        cout << s << endl;
        exit(0);
      }
      int e = 0;
      while (e < s.length() && s[e] == '0') e++;
      if (e == s.length()) {
        cout << 0;
        exit(0);
      }
      for (int i = e; i < s.length(); ++i) {
        cout << s[i];
      }
      exit(0);
    } else {
      if (v2[0] == 0 && s.length() > 2 && s[1] == '0' && s[2] == '0' &&
          v1.size() > 1) {
        s.erase(s.begin() + v1[0]);
        s.erase(s.begin() + v1[1]);
        if (s.length() == 1) {
          cout << s << endl;
          exit(0);
        }
        int e = 0;
        while (e < s.length() && s[e] == '0') e++;
        if (e == s.length()) {
          cout << 0;
          exit(0);
        }
        for (int i = e; i < s.length(); ++i) {
          cout << s[i];
        }
        exit(0);
      }
      s.erase(s.begin() + v2[0]);
      int e = 0;
      if (s.length() == 1) {
        cout << s << endl;
        exit(0);
      }
      while (e < s.length() && s[e] == '0') e++;
      if (e == s.length()) {
        cout << 0;
        exit(0);
      }
      for (int i = e; i < s.length(); ++i) {
        cout << s[i];
      }
      exit(0);
    }
  }
}
int main() {
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
