3차원 미로는 속이 빈 정육면체로 만듭니다. 정육면체는 정수 좌표를 쓰며, 한 꼭짓점 $(0,0,0)$에서 반대쪽 꼭짓점 $(n-1,,n-1,,n-1)$까지의 영역을 차지합니다. 정육면체의 여섯 면에는 각각 2차원 미로가 있습니다. 각 면은 $n\times n$ 격자이고, 칸은 벽(X)이거나 열린 칸(빈칸)입니다. 모든 면의 테두리 칸은 항상 벽이므로, 열린 칸은 각 면 내부의 무늬를 이룹니다.
정육면체 안에는 표식 하나와 막대 여섯 개가 있습니다. 각 막대는 표식에서 출발해 정육면체의 한 면을 곧장 뚫고 나갑니다. 막대가 어떤 면을 지날 때, 그 면과 평행한 표식의 두 좌표가 가리키는 한 칸으로 나옵니다. 여섯 개의 출구 칸이 모두 열려 있을 때에만 표식은 그 격자점에 있을 수 있으며, 막대 중 하나라도 벽 칸에 닿으면 그 위치는 막혀 있습니다.
표식은 $(1,1,1)$에서 시작해 $(n-2,,n-2,,n-2)$에 도착해야 합니다. 한 번 움직일 때마다 전체 구조가 한 축을 따라 한 칸씩 미끄러집니다. 여섯 가지 이동은 각각 F(Forward, 앞), B(Back, 뒤), L(Left, 왼쪽), R(Right, 오른쪽), U(Up, 위), D(Down, 아래)로 표기합니다. 표식의 위치를 $(x,y,z)$($1\le x,y,z\le n-2$)라 하면:
B는 $x$를 1 늘리고, F는 $x$를 1 줄입니다.L은 $y$를 1 늘리고, R은 $y$를 1 줄입니다.U는 $z$를 1 늘리고, D는 $z$를 1 줄입니다.이동은 도착 위치가 정육면체 안에 있고 막혀 있지 않을 때에만 허용됩니다. $(1,1,1)$에서 $(n-2,,n-2,,n-2)$까지 표식을 옮기는 가장 짧은 이동 순서를 구하세요.
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 정수 $n$($4 \le n \le 30$)이 적힌 줄로 시작합니다. 이어지는 $6n$개의 줄은 여섯 면을 차례대로 설명하며, 각 면은 정확히 $n$개의 문자로 이루어진 $n$개의 줄로 주어집니다(각 문자는 벽을 뜻하는 X 또는 열린 칸을 뜻하는 빈칸입니다).
면은 다음의 고정된 순서와 방향으로 주어집니다.
같은 내용을 좌표로 나타내면, $M = n-1$이고 표식의 위치가 $(x,y,z)$일 때 각 면을 지나는 막대는 그 면의 아래 표에 있는 (0부터 세는) 행과 열로 나옵니다. 이 여섯 칸 중 하나라도 벽이면 그 위치는 막혀 있습니다.
| 면 (입력 순서) | 행 | 열 |
|---|---|---|
| 1. 앞면 Forward | $M-z$ | $M-y$ |
| 2. 오른쪽면 Right | $M-z$ | $x$ |
| 3. 뒷면 Back | $M-z$ | $y$ |
| 4. 왼쪽면 Left | $M-z$ | $M-x$ |
| 5. 윗면 Up | $M-x$ | $y$ |
| 6. 아랫면 Down | $M-x$ | $y$ |
테스트 케이스 목록은 0 하나만 있는 줄로 끝나며, 이 줄은 테스트 케이스가 아닙니다.
각 테스트 케이스마다 한 줄을 출력합니다. 표식을 $(1,1,1)$에서 $(n-2,,n-2,,n-2)$로 옮기는, 길이가 가장 짧은 이동 순서를 출력하세요. 순서의 각 문자는 F, B, L, R, U, D 중 하나입니다. 가장 짧은 순서가 여러 개이면 $F < B < L < R < U < D$ 순서에서 사전순으로 가장 앞선 것을 출력합니다. 모든 테스트 케이스에는 적어도 하나의 해가 존재함이 보장됩니다.