import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Collectors;
public class BOJ10610 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] nToArray = sc.nextLine().split("");
int[] numberArray = Arrays.stream(nToArray).mapToInt(Integer::parseInt).toArray();
if(Arrays.stream(numberArray).filter(i-> i == 0).findFirst().isEmpty()) {
System.out.println(-1);
} else if(Arrays.stream(numberArray).sum() % 3 !=0 ) {
System.out.println(-1);
} else {
int[] sortedArray = Arrays.stream(numberArray).boxed().sorted((a,b) -> b-a).mapToInt(Integer::intValue).toArray();
String result = Arrays.stream(sortedArray).mapToObj(String::valueOf).collect(Collectors.joining());
System.out.println(result);
}
}
}

"30의 배수를 찾기"라는 과제를 해결하기 위해 다음의 수학적 사고 지식을 갖고 있는가?
두가지 조건을 만족하는 상황에서 내림차순만 한다면 정답이 된다는 사실을 인지하고 있는가?