핫 스팟

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

문제

핫 스팟은 4×4 판 위에서 하는 1인용 게임입니다. 목표는 빨간 로봇을 지금 있는 칸에서 왼쪽 위 모서리로 옮기는 것입니다. 판에는 초록 로봇과 파란 로봇도 있을 수 있습니다. 어느 순간에도 한 칸에는 로봇이 최대 하나만 있을 수 있습니다.

로봇은 다음 두 가지 방법 중 하나로 움직일 수 있습니다.

  1. 두 로봇이 가로나 세로로(대각선은 안 됩니다) 맞닿아 있으면, 한 로봇이 다른 로봇을 뛰어넘어 바로 그 너머 칸으로 갈 수 있습니다. 단, 그 칸이 비어 있어야 합니다. 예를 들어 로봇 $a$가 로봇 $b$의 바로 왼쪽에 있으면, $a$는 $b$의 바로 오른쪽 칸으로 뛸 수 있습니다.
  2. 세 로봇이 가로나 세로로(역시 대각선은 안 됩니다) 한 줄로 이어져 있으면, 그중 하나가 나머지 둘을 뛰어넘어 바로 그 너머 칸으로 갈 수 있습니다. 단, 그 칸이 비어 있어야 합니다. 예를 들어 $b$가 $a$의 바로 오른쪽에, $c$가 $b$의 바로 오른쪽에 있으면, $a$는 $c$의 바로 오른쪽 칸으로 뛸 수 있습니다.

뛰기는 뛰는 로봇의 위치만 바꿉니다. 로봇이 판에서 사라지거나 새로 생기는 일은 없습니다.

파란 로봇은 다른 파란 로봇이나 빨간 로봇과 가로·세로로 결코 맞닿아 있을 수 없으며, 어떤 이동도 그런 인접을 만들어서는 안 됩니다.

처음 판의 상태가 주어질 때, 빨간 로봇을 왼쪽 위 모서리로 옮기는 데 필요한 최소 뛰기 횟수를 구하세요.

입력

입력은 처음 판의 상태를 네 줄로 나타내며, 각 줄에는 네 개의 문자가 있습니다. 각 문자는 빨간 로봇을 뜻하는 R, 파란 로봇을 뜻하는 B, 초록 로봇을 뜻하는 G, 빈 칸을 뜻하는 마침표 . 중 하나입니다.

출력

빨간 로봇이 판의 왼쪽 위 칸에 도달하는 데 필요한 최소 뛰기 횟수를 정수 하나로 한 줄에 출력합니다.