#include <bits/stdc++.h>
using namespace std;
class Solution {
  string s;
  int n;
  vector<int> digit;
  vector<int> statistic;
  set<int> deletelist(int num, int dig) {
    set<int> res;
    if (statistic[dig] < num) return res;
    int c = 0;
    for (int i = n - 1; i >= 0; i--) {
      if (digit[i] % 3 == dig) {
        c++;
        res.insert(i);
        if (c == num) {
          if (i > 0) return res;
          for (int j = 1; j < n - 1; j++) {
            if (res.find(j) == res.end() && digit[j] != 0) return res;
            if (digit[j] == 0) res.insert(j);
          }
          if (res.size() == n && res.size() > num) res.erase(next(res.begin()));
          return res;
        }
      }
    }
    cout << "should never get here!";
  }
  void del(set<int> dlist) {
    if (dlist.size() == n) {
      cout << -1 << endl;
      return;
    }
    for (int i = 0; i < n; i++) {
      if (dlist.find(i) == dlist.end()) {
        cout << s[i];
      }
    }
    return;
  }

 public:
  void sol() {
    cin >> s;
    n = s.size();
    digit = vector<int>(n);
    statistic = vector<int>(3, 0);
    for (int i = 0; i < n; i++) {
      digit[i] = s[i] - '0';
      statistic[digit[i] % 3] += 1;
    }
    int total = statistic[1] + 2 * statistic[2];
    total = total % 3;
    if (total == 0) {
      cout << s << '\n';
      return;
    }
    if (total == 1) {
      if (statistic[1] < 1 && statistic[2] < 2) {
        cout << -1 << endl;
        return;
      }
      set<int> l1 = deletelist(1, 1);
      set<int> l2 = deletelist(2, 2);
      if (!l2.empty() && (l1.size() > l2.size() || l1.empty()))
        del(l2);
      else
        del(l1);
    } else {
      if (statistic[1] < 2 && statistic[2] < 1) {
        cout << -1 << endl;
        return;
      }
      set<int> l1 = deletelist(1, 2);
      set<int> l2 = deletelist(2, 1);
      if (!l2.empty() && (l1.size() > l2.size() || l1.empty()))
        del(l2);
      else
        del(l1);
    }
  }
};
int main(int argc, char *argv[]) {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  Solution s;
  s.sol();
  return 0;
}
