버드는 새 보드게임을 샀고 완전히 빠져들었다. 같은 게임을 몇 번이고 반복해서 풀며, 자신이 어떤 판이든 최소 이동 횟수로 풀 수 있다고 생각하지만 확신이 서지 않는다. 그래서 그는 여러 판을 푸는 데 필요한 최소 이동 횟수를 계산하는 프로그램을 만들어, 자신의 답을 검산하고 싶어 한다.

$6 \times 6$ 크기의 판과, $2 \times 1$ 또는 $3 \times 1$(세로) 조각, $1 \times 2$ 또는 $1 \times 3$(가로) 조각들이 주어진다. 가로 조각은 가로 방향으로만, 세로 조각은 세로 방향으로만 밀 수 있다. 조각을 밀려는 경로에 다른 조각이나 벽이 없을 때에만 그 조각을 밀 수 있다.
특별한 $1 \times 2$ 가로 조각이 하나 있다. 또한 오른쪽 벽에는, 그 특별한 조각과 같은 행에, 오직 그 특별한 조각만 빠져나갈 수 있는 틈이 하나 있다. 게임의 목표는 이 특별한 가로 조각을 오른쪽 틈으로 판 밖으로 내보내는 것이다.
한 조각을 몇 칸을 밀든 그것은 한 번의 이동으로 센다. (즉, 조각을 가로로 한 칸 미는 것도 한 번의 이동이고, 두 칸을 한꺼번에 미는 것도 한 번의 이동이다.)
입력에는 여러 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 판 밖으로 내보내야 하는 특별한 조각을 나타내는 대문자 하나가 적힌 줄로 시작한다. 이어지는 6개의 줄은 각각 6개의 문자로 이루어진다. 각 문자는 빈 칸을 나타내는 .(마침표)이거나, 어떤 조각의 일부를 나타내는 대문자이다. 문자들은 반드시 $1 \times 2$, $1 \times 3$, $2 \times 1$, $3 \times 1$ 중 하나의 조각을 이루며, 하나의 판에서 같은 문자가 두 개 이상의 조각을 나타내는 일은 없다. 특별한 조각을 나타내는 문자는 판 위 어딘가의 $1 \times 2$ 조각에 반드시 대응한다. 데이터의 끝은 한 줄에 별표 * 하나만 있는 줄로 표시된다.
각 테스트 케이스마다, 주어진 특별한 조각을 판 밖으로 내보내는 데 필요한 최소 이동 횟수를 하나의 정수로 출력한다. 불가능하다면 -1을 출력한다. 각 정수는 한 줄에 하나씩 출력하며, 답 사이에 빈 줄을 넣지 않는다.