로봇

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

한 아이가 선물로 프로그래밍할 수 있는 로봇을 받았다. 이 로봇은 최대 kk개의 이동으로 이루어진 명령 순서 하나를 저장할 수 있다. 전원을 켜면 로봇은 순서에 적힌 이동을 하나씩 차례로 수행한다. 마지막 이동을 마치면 다시 순서의 처음으로 돌아가 전체 순서를 계속 반복한다.

로봇은 n×nn \times n 격자판의 왼쪽 위 칸에 놓인다. 나머지 칸 중 일부에는 로봇이 들어갈 수 없는 장애물이 있다. 로봇이 이 순서를 반복하여 결국 판 밖으로 나가도록 명령 순서를 작성하는 것이 목표다.

이동은 두 가지만 허용된다. 아래로 한 칸 내려가거나 오른쪽으로 한 칸 이동하는 것이다. 순서에서 문자 '1'은 아래로 한 칸, 문자 '0'은 오른쪽으로 한 칸을 뜻한다. 어떤 이동이 판의 아래쪽 끝이나 오른쪽 끝을 벗어나게 하면 그 순간 로봇은 판 밖으로 나간 것이다. 로봇은 장애물이 있는 칸에는 절대 들어가면 안 된다.

입력

첫째 줄에 두 정수 nnkk가 주어진다 (1n10001 \le n \le 1000, 1k501 \le k \le 50). 여기서 nn은 격자판의 한 변의 길이다.

다음 nn개의 줄에는 각각 nn개의 문자로 이루어진 문자열이 주어지며, 판의 각 행을 나타낸다. 문자 'R'은 로봇의 시작 칸을 뜻하고 항상 왼쪽 위 모서리에 있다. 문자 '.'은 빈 칸을, 문자 'X'는 장애물이 있는 칸을 뜻한다.

로봇이 판 밖으로 나갈 수 있는 길이 kk 이하의 명령 순서가 항상 존재한다고 가정해도 된다.

출력

명령 순서를 한 줄에 출력한다. 순서는 최대 kk개의 문자로 이루어진 문자열이며, '0'은 오른쪽으로 한 칸, '1'은 아래로 한 칸을 뜻한다.

가능한 순서가 여러 개이면 가장 짧은 것을 출력한다. 가장 짧은 순서가 여러 개이면 그중 사전 순으로 가장 앞선 것을 출력한다.