#include <bits/stdc++.h>
using namespace std;
bool find_mask(const vector<char> &number, set<int> &mask, int count,
               int modulus) {
  int N = number.size();
  for (int i = 0; i < N; i++) {
    if (number[i] % 3 == modulus) {
      mask.insert(i);
    }
    if (mask.size() >= count) {
      break;
    }
  }
  int zero_index = -1;
  for (int i = N - 1; i >= 0; i--) {
    if (number[i] != 0 && mask.find(i) == mask.end()) {
      break;
    }
    if (number[i] == 0) {
      mask.insert(i);
      zero_index = i;
    }
  }
  if (mask.size() == number.size() && zero_index != -1) {
    mask.erase(zero_index);
  }
  return mask.size() >= count && mask.size() < number.size();
}
void print_number(const vector<char> &number) {
  int N = number.size();
  for (int i = N - 1; i >= 0; i--) {
    printf("%d", number[i]);
  }
  printf("\n");
}
void print_masked_number(const vector<char> &number, set<int> &mask) {
  int N = number.size();
  for (int i = N - 1; i >= 0; i--) {
    if (mask.find(i) == mask.end()) {
      printf("%d", number[i]);
    }
  }
  printf("\n");
}
int main() {
  vector<char> number;
  int modulus = 0;
  while (true) {
    char c;
    scanf("%c", &c);
    if (c == '\n') {
      break;
    }
    number.push_back(c - '0');
    modulus = (modulus + c - '0') % 3;
  }
  reverse(number.begin(), number.end());
  bool success = false;
  if (modulus == 0) {
    print_number(number);
    success = true;
  } else if (modulus == 1) {
    set<int> mask1, mask2;
    bool suc1 = find_mask(number, mask1, 1, 1);
    bool suc2 = find_mask(number, mask2, 2, 2);
    success = success || suc1 || suc2;
    if (suc1 && (mask1.size() <= mask2.size() || !suc2)) {
      print_masked_number(number, mask1);
    } else if (suc2) {
      print_masked_number(number, mask2);
    }
  } else if (modulus == 2) {
    set<int> mask1, mask2;
    bool suc1 = find_mask(number, mask1, 1, 2);
    bool suc2 = find_mask(number, mask2, 2, 1);
    success = success || suc1 || suc2;
    if (suc1 && (mask1.size() <= mask2.size() || !suc2)) {
      print_masked_number(number, mask1);
    } else if (suc2) {
      print_masked_number(number, mask2);
    }
  }
  if (!success) {
    printf("-1\n");
  }
  return 0;
}
