로봇 카렐

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

문제

카렐은 자신이 만든 로봇 Karel을 로봇 대회에 내보내려고 한다. 대회의 목표는 미로에서 탈출하는 것이다. 미로는 가로 WW칸, 세로 HH칸인 격자이고, 각 칸은 벽이거나 빈 칸이다. 빈 칸 가운데 정확히 한 칸이 출구다.

로봇이 아는 명령은 Step, Right, Left 세 가지다. Step은 로봇이 바라보는 방향으로 한 칸 이동한다. 바로 앞 칸이 벽이거나 미로 밖이면 로봇은 움직이지 않는다. Right는 로봇을 시계 방향으로 90도 돌리고, Left는 반시계 방향으로 90도 돌린다. 로봇의 메모리에는 명령 10개 이하로 이루어진 프로그램이 들어간다. 마지막 명령을 실행하고 나면 프로그램의 처음으로 돌아가 계속 실행한다.

로봇은 어떤 빈 칸에서 출발한다. 출발한 칸이 어디인지는 알 수 없지만, 처음에 위쪽(바로 윗줄의 이웃 칸)을 바라보고 있다는 것은 알고 있다. 카렐은 어느 칸에서 출발하더라도 로봇이 탈출하는 프로그램을 쓰고 싶다. 즉 프로그램을 실행하는 동안 로봇이 언젠가 출구에 도달해야 한다.

미로와 프로그램이 주어질 때, 그 프로그램으로 탈출하는 출발 칸이 몇 개인지 세어라.

입력

입력은 여러 개의 테스트 케이스로 이루어지고, 파일이 끝날 때까지 이어진다.

각 테스트 케이스의 첫 줄에 두 정수 HHWW가 공백을 사이에 두고 주어진다 (1H,W1001 \le H, W \le 100). 이어지는 HH개의 줄에는 미로를 나타내는 문자가 정확히 WW개씩 주어진다. 문자 X는 벽, 문자 .은 빈 칸, 문자 E는 출구가 있는 빈 칸을 뜻한다.

그 다음 줄에 프로그램의 길이 LL이 주어진다 (1L101 \le L \le 10). 테스트 케이스의 마지막 줄에 프로그램을 이루는 명령 LL개가 주어진다. 문자 S는 Step, 문자 L은 Left, 문자 R은 Right를 뜻한다.

출력

테스트 케이스마다 한 줄씩 출력한다. 모든 출발 칸에서 로봇이 탈출하면 OK를 출력한다. 그렇지 않으면 탈출에 성공하는 출발 칸의 개수를 출력한다. 출구가 있는 칸도 출발 칸으로 세며, 그 칸에서 출발한 로봇은 이미 출구에 있으므로 탈출한 것으로 본다.