타일 밀기 퍼즐입니다. 개구리 한 마리가 앞뒤로 걷기와 뛰기를 할 수 있습니다. 타일이 빈틈없이 한 줄로 놓여 있고, 그 줄 안의 유일한 빈칸에 개구리가 서 있습니다. 각 타일은 한쪽 면이 검은색, 반대쪽 면이 흰색으로 칠해져 있습니다.
상태는 문자열로 나타냅니다. F는 개구리가 서 있는 빈칸, B는 검은 면이 위로 보이는 타일, W는 흰 면이 위로 보이는 타일입니다. 앞 방향은 왼쪽에서 오른쪽입니다. 예를 들어 BWFBBW는 개구리 뒤에 타일 두 개, 앞에 타일 세 개가 있는 상태입니다.
걷기. 개구리는 인접한 타일을 넘어 걸을 수 있습니다. 앞으로 걸으면 개구리와 바로 앞 타일이 자리를 맞바꾸며(타일이 개구리가 있던 빈칸으로 미끄러져 들어옴), 타일의 면은 그대로입니다. 뒤로 걷는 것도 대칭입니다. 예를 들어 BWFBBW에서 앞으로 걸으면 BWBFBW가 됩니다.
뛰기. 개구리는 인접한 타일 하나를 뛰어넘어 그다음 타일 위에 내려앉을 수 있습니다. 내려앉은 그 타일이 개구리가 있던 빈칸으로 미끄러져 들어오면서 반대쪽 면으로 뒤집힙니다. 뛰어넘어진 가운데 타일은 움직이지 않습니다. 예를 들어 BWFBBW에서 뒤로 뛰면 FWWBBW가 됩니다.
걷기와 뛰기는 각각 한 번의 이동으로 셉니다. 도달해야 하는 상태와 답의 정의는 아래 출력 부분에 나와 있습니다.
입력은 하나 이상의 테스트 케이스로 이루어지며, 각 테스트 케이스는 한 줄에 주어집니다. 각 줄은 초기 타일 배치를 나타내는 비어 있지 않은 문자열 S로, 길이는 최대 100자이고 문자 B, W와 정확히 하나의 F로 이루어집니다. 입력의 마지막 줄에는 -(빼기) 문자가 하나 이상 있습니다.
각 테스트 케이스마다 다음 형식으로 한 줄을 출력합니다.
k. M
여기서 k는 테스트 케이스 번호(1부터 시작)이고, M은 어떤 두 검은 타일 사이에도 흰 타일이 없는 배치 — 즉 모든 검은 타일이 하나의 연속된 덩어리를 이루는 배치 — 에 도달하기 위한 최소 이동 횟수입니다. 개구리(빈칸)는 어디에 있어도 되며, 이 조건을 확인할 때는 무시합니다. 10회 미만의 이동으로 그러한 배치에 도달할 수 없으면 M을 -1로 출력합니다.