GlitchBot

Left, Right, Forward 명령 목록에서 한 명령만 다른 값으로 바꿔 로봇이 주어진 목표 지점에 도착하도록 할 때, 바꿔야 할 명령의 번호와 새 값을 찾는다.

보통4시뮬레이션완전 탐색구현면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

배달 로봇 한 대가 고장났다. 로봇이 하는 일은 단순하다. 명령 목록을 순서대로 실행해서 목표 지점에 도착하면 된다. 원래 목록은 로봇을 목표 지점까지 정확히 데려가는 목록이다. 그런데 목록을 로봇 메모리에 올리는 도중에 명령 하나가 원래와 다른 값으로 바뀐다. 메모리에는 항상 잘못된 명령이 정확히 하나 있고, 그 때문에 로봇은 목록을 끝까지 실행한 뒤 엉뚱한 지점에 도착한다.

로봇이 실행하는 명령은 Left, Right, Forward 세 가지다. Left와 Right는 자리를 옮기지 않고 해당 방향으로 90도 회전만 한다. 위치를 바꾸는 명령은 Forward뿐이며, 바라보는 방향으로 한 칸 이동한다. 로봇은 항상 격자의 원점 (0,0)(0, 0)에서 출발하고 yy축 양의 방향인 북쪽을 바라본다.

목표 지점의 좌표와 로봇 메모리에 들어 있는 명령 목록이 주어진다. 명령 하나를 다른 명령으로 바꿔서 로봇이 목표 지점에 도착하게 만들어라.

입력

첫째 줄에 목표 지점의 정수 좌표 xxyy가 공백으로 구분되어 주어진다. (50x50-50 \le x \le 50, 50y50-50 \le y \le 50)

둘째 줄에 명령의 개수 nn이 주어진다. (1n501 \le n \le 50)

이어지는 nn개의 줄에는 명령이 한 줄에 하나씩 주어진다. 각 명령은 Left, Forward, Right 중 하나다.

출력

바꿔야 할 명령의 줄 번호와 그 자리에 넣을 새 명령을 공백으로 구분해 한 줄에 출력한다. 줄 번호는 1부터 시작한다. 새 명령은 원래 명령과 달라야 한다.

명령 하나만 바꿔서 로봇을 목표 지점에 도착시키는 방법이 여러 가지면 줄 번호가 가장 작은 방법을 출력한다. 그 줄에 넣을 수 있는 새 명령이 둘 이상이면 사전순으로 가장 앞선 것을 출력한다. 즉 Forward, Left, Right 순서로 먼저 오는 명령을 고른다.