《브루마블(Brue Marble)》은 주인공 브루를 이동시켜 보드판 이곳저곳에서 열리는 행사에 참여시키는 게임입니다. 게임이 진행되는 보드판은 N행 M열의 격자판이고, 각 칸에는 상하좌우 또는 대각선 방향의 8개 방향 중 하나의 방향을 가리키는 화살표가 그려져 있습니다. 화살표가 가리키는 방향에 격자칸이 항상 존재합니다.
보드게임에는 행사라는 시스템이 있습니다. 이 행사는 정확히 한 턴 동안만 진행되며, 해당 턴에 특정한 격자칸에 있을 경우 행사에 참여할 수 있습니다. 행사에 참여하는 데 성공하면 점수를 얻게 됩니다. 얻는 점수는 행사에 따라 다릅니다.
게임은 다음 과정을 통해서 진행됩니다.
게임을 시작하기 전에, 시작 위치를 정하고 그 위에 말을 놓습니다.
이후 L번의 턴을 반복합니다. 한 번의 턴은 다음과 같이 진행됩니다.
L턴이 끝난 뒤, 최종 점수를 계산합니다.
이 게임은 대부분이 완성되어 있지만, 아직 행사와 관련된 정보가 결정되지 않았습니다. 당신은 이 게임의 베타 테스터로, 게임의 밸런스가 잘 맞춰져 있는지를 시뮬레이션해야 합니다. 당신은 특정 지점이 시작 위치일 때의 최종 점수를 구해야 합니다. 단, 중간에 행사와 관련된 정보가 추가될 수 있고, 그때마다 여러분은 추가된 정보를 반영해야 합니다. 초기에 예정된 행사는 없습니다.
당신이 처리해야 하는 작업은 다음 두 가지와 같습니다. i행 j열을 (i,j)와 같이 표기할 때,
첫 번째 줄에 격자의 크기를 나타내는 두 정수 N, M과 턴의 수 L, 그리고 작업의 횟수 Q가 주어집니다.
다음 N개의 줄에는 각 격자 칸 안의 화살표의 상태가 주어집니다. 이들 중 i번째 줄에는 M개의 문자가 주어지며, 이들 중 j번 문자 A_i,j는 i행 j열의 격자칸 안에 있는 화살표의 방향을 나타냅니다. 위에서 아래로 갈수록 행 번호가 증가하고, 왼쪽에서 오른쪽으로 갈수록 열 번호가 증가한다고 할 때, 각 문자가 나타내는 방향은 아래와 같습니다.
Q: 왼쪽 위W: 위E: 오른쪽 위D: 오른쪽C: 오른쪽 아래X: 아래Z: 왼쪽 아래A: 왼쪽다음 Q개의 줄에 작업에 대한 정보가 한 줄에 하나씩 주어집니다. i번 작업에 대한 정보는 아래와 같은 형식으로 주어집니다.
모든 점수 계산 작업에 대해 최종 점수를 계산해 한 줄에 하나씩 출력합니다.
2≤N, M≤500
1≤L≤109
1≤Q≤250 000
A\_{i, j} \in \\{ \text{Q}, \text{W}, \text{E}, \text{D}, \text{C}, \text{X}, \text{Z}, \text{A}\\} \~ (1 \le i \le N, \~ 1 \le j \le M)
i번 작업이 행사 추가 작업일 때, 다음이 성립합니다.
i번 작업이 점수 계산 작업일 때, 다음이 성립합니다.
점수 계산 작업이 적어도 하나 존재합니다.
각 칸의 화살표가 가리키는 방향에 항상 칸이 존재합니다.