격자 미로에서 로봇이 정해진 회전 명령 순서에 따라 전진하거나 회전하며, 명령이 모두 소진된 뒤 출구에 도달할 수 있는지 판정한다.
보통7BFS시뮬레이션구현그래프아직 제출이 없습니다시간 제한8초메모리 제한512 MB로봇 한 대가 2차원 미로에 놓여 있다. 이 미로에는 입구와 출구가 하나씩 있다.
미로는 H행 W열 격자다. 맨 위 행이 북쪽을 향한다. 각 칸은 빈칸이거나 벽이다. 빈칸 하나가 입구이고 다른 빈칸 하나가 출구다.
로봇은 버튼 두 개로 조종한다. 전진 버튼은 로봇이 바라보는 방향으로 로봇을 한 칸 옮긴다. 로봇은 벽으로 들어갈 수 없고 미로 밖으로도 나갈 수 없으므로, 그런 상황에서는 전진 버튼을 눌러도 아무것도 바뀌지 않는다. 회전 버튼은 미리 정해진 명령 N개를 차례로 따라 로봇을 90도 돌린다. 각 명령은 왼쪽 회전을 뜻하는 'L'이거나 오른쪽 회전을 뜻하는 'R'이다. 회전 버튼을 처음 누르면 첫 번째 명령을 따르고, 두 번째로 누르면 두 번째 명령을 따르며, 그 뒤도 마찬가지다. 명령 N개를 모두 쓰고 나면 회전 버튼은 더 작동하지 않지만 전진 버튼은 계속 작동한다.
로봇은 처음에 입구 칸에서 북쪽을 향한다. 두 버튼은 원하는 순서로 원하는 횟수만큼 누를 수 있고, 제한은 회전 횟수뿐이다. 로봇이 출구 칸에 도달할 수 있는지 판정하라.
입력은 여러 데이터 집합으로 이루어진다. 각 데이터 집합의 형식은 다음과 같다.
H W N
s1s2...sN
c(1,1)c(1,2)...c(1,W)
...
c(H,1)c(H,2)...c(H,W)
데이터 집합의 첫째 줄에 정수 H, W, N이 주어진다 (1≤H,W≤1000, 1≤N≤106).
둘째 줄에 길이가 N인 명령 문자열이 주어진다. 각 문자는 'L' 또는 'R'이다.
이어지는 H개 줄에는 각각 정확히 W개의 문자가 주어지고, 북쪽 행부터 남쪽 행까지 미로의 한 행을 나타낸다. '.'은 빈칸, '#'은 벽, 'S'는 입구, 'G'는 출구다. 모든 데이터 집합에 'S'와 'G'가 정확히 하나씩 있다.
입력의 마지막 줄은 0 0 0이고, 이 줄은 데이터 집합이 아니다.
각 데이터 집합마다 로봇이 출구에 도달할 수 있으면 Yes를, 그렇지 않으면 No를 출력한다. 데이터 집합이 주어진 순서대로 한 줄에 하나씩 출력한다.