#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 5;
void solve() {
  string s;
  cin >> s;
  map<int, int> mp;
  int sum = 0;
  for (auto i : s) {
    mp[(i - '0') % 3]++;
    sum += i - '0';
  }
  int k = sum % 3;
  if (k == 0) {
    cout << s << endl;
    return;
  }
  string ans = "";
  if (k == 1) {
    if (mp[1] >= 1) {
      int f = 1;
      string tempans = "";
      for (int i = (int)s.size() - 1; i >= 0; i--) {
        if ((s[i] - '0') % 3 == 1 && f) {
          f--;
          continue;
        }
        tempans += s[i];
      }
      reverse(tempans.begin(), tempans.end());
      if ((int)tempans.size()) {
        int f = 0;
        string tempans2 = "";
        for (int i = 0; i < (int)tempans.size(); i++) {
          if (tempans[i] != '0') f = 1;
          if (f) {
            tempans2 += tempans[i];
          }
        }
        if ((int)tempans2.size() == 0) tempans2 += '0';
        if ((int)ans.size() < (int)tempans2.size()) ans = tempans2;
      }
    }
    if (mp[2] >= 2) {
      int f = 2;
      string tempans = "";
      for (int i = (int)s.size() - 1; i >= 0; i--) {
        if ((s[i] - '0') % 3 == 2 && f) {
          f--;
          continue;
        }
        tempans += s[i];
      }
      reverse(tempans.begin(), tempans.end());
      if ((int)tempans.size()) {
        string tempans2 = "";
        int f = 0;
        for (int i = 0; i < (int)tempans.size(); i++) {
          if (tempans[i] != '0') f = 1;
          if (f) {
            tempans2 += tempans[i];
          }
        }
        if ((int)tempans2.size() == 0) tempans2 += '0';
        if ((int)ans.size() < (int)tempans2.size()) ans = tempans2;
      }
    }
  }
  if (k == 2) {
    if (mp[1] >= 2) {
      int f = 2;
      string tempans = "";
      for (int i = (int)s.size() - 1; i >= 0; i--) {
        if ((s[i] - '0') % 3 == 1 && f) {
          f--;
          continue;
        }
        tempans += s[i];
      }
      reverse(tempans.begin(), tempans.end());
      if ((int)tempans.size()) {
        int f = 0;
        string tempans2 = "";
        for (int i = 0; i < (int)tempans.size(); i++) {
          if (tempans[i] != '0') f = 1;
          if (f) {
            tempans2 += tempans[i];
          }
        }
        if ((int)tempans2.size() == 0) tempans2 += '0';
        if ((int)ans.size() < (int)tempans2.size()) ans = tempans2;
      }
    }
    if (mp[2] >= 1) {
      int f = 1;
      string tempans = "";
      for (int i = (int)s.size() - 1; i >= 0; i--) {
        if ((s[i] - '0') % 3 == 2 && f) {
          f--;
          continue;
        }
        tempans += s[i];
      }
      reverse(tempans.begin(), tempans.end());
      if ((int)tempans.size()) {
        string tempans2 = "";
        int f = 0;
        for (int i = 0; i < (int)tempans.size(); i++) {
          if (tempans[i] != '0') f = 1;
          if (f) {
            tempans2 += tempans[i];
          }
        }
        if ((int)tempans2.size() == 0) tempans2 += '0';
        if ((int)ans.size() < (int)tempans2.size()) ans = tempans2;
      }
    }
  }
  if ((int)ans.size() == 0) {
    cout << -1 << endl;
    return;
  }
  cout << ans << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) solve();
  cerr << "Time elapsed : " << clock() * 1000.0 / CLOCKS_PER_SEC << "ms"
       << '\n';
  return 0;
}
