세 바구니의 구슬

시간 제한1초메모리 제한128 MB

문제

세 개의 바구니에 각각 구슬이 들어 있다. 한 번의 이동에서는 바구니 하나를 출발 바구니로, 다른 바구니 하나를 도착 바구니로 정한 뒤, 도착 바구니에 이미 들어 있는 구슬 수와 똑같은 개수의 구슬을 출발 바구니에서 도착 바구니로 옮긴다. 그 결과 도착 바구니의 구슬 수는 두 배가 된다. 이 이동은 출발 바구니의 구슬 수가 도착 바구니의 구슬 수 이상일 때에만 할 수 있다.

세 바구니의 구슬 수를 모두 같게 만들되, 필요한 이동 횟수를 최소로 하고 싶다. 그 최소 이동 횟수를 구하라. 어떤 이동을 하더라도 세 바구니를 같게 만들 수 없다면, 그 사실을 대신 알려야 한다.

입력

입력의 각 줄은 문제 하나의 인스턴스를 나타낸다. 한 줄에는 세 개의 양의 정수가 하나의 공백으로 구분되어 주어지며, 이는 세 바구니에 처음 들어 있는 구슬의 개수를 뜻한다. 세 정수의 합은 60 이하이다.

세 개의 0으로 이루어진 줄은 입력의 끝을 나타내며, 이 줄은 처리하지 않는다.

출력

각 인스턴스마다 한 줄에, 세 바구니의 구슬 수를 모두 같게 만드는 데 필요한 최소 이동 횟수를 출력한다. 세 바구니를 같게 만드는 이동 순서가 존재하지 않으면 대신 -1을 출력한다.