UFO

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

문제

스네이크랜드 보안대가 적대적인 외계 우주선에 손상을 입혀 강제로 착륙시켰다. 우주선은 한 변이 1인 정육면체 구획을 쌓아 만들었다. 위에서 내려다보면 우주선은 NNMM열 격자를 덮고, iijj열 칸 위에는 구획이 hi,jh_{i,j}개 쌓여 있다. 층은 바닥부터 1층으로 세므로, iijj열 칸에 LL층 구획이 있다는 말은 hi,jLh_{i,j} \ge L이라는 뜻이다.

구획은 레이저로만 잘리는 금속으로 만들었다. 우주선의 네 면에 각각 레이저 장치가 있고, 각 장치는 자기 면에 수직인 빔을 쏜다. 빔은 한 행이나 한 열을 따라 정해진 한 층의 높이로 수평으로 나아간다.

1행이 가장 북쪽 행이고 1열이 가장 서쪽 열이다. 서쪽에서 쏜 빔은 그 행을 1열에서 MM열 쪽으로 지나가고, 동쪽에서 쏜 빔은 MM열에서 1열 쪽으로 지나간다. 북쪽에서 쏜 빔은 그 열을 1행에서 NN행 쪽으로, 남쪽에서 쏜 빔은 NN행에서 1행 쪽으로 지나간다.

빔은 지나가는 길에서 앞에 있는 구획부터 최대 RR개를 부순다. 진행 방향으로 칸을 하나씩 보면서, 그 칸의 더미가 쏘는 층까지 아직 닿아 있으면 그 층의 구획을 부수고, 부순 개수가 RR개가 되면 멈춘다. 부서진 구획 위에 있던 구획은 한 층씩 내려앉으므로, 한 칸에서 구획을 하나 부수면 그 칸의 더미 높이가 1 줄어든다. RR개를 다 부수기 전에 빔이 우주선을 빠져나가면 부순 개수는 그보다 적다.

KK번 사격한 뒤에 우주선을 공중에서 폭격한다. 폭탄은 격자에 맞춘 PPPP열 정사각형 영역을 덮고, 그 P×PP \times P개 칸 위에 남아 있는 구획을 모두 부순다. 폭탄 하나로 부술 수 있는 구획의 최대 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 NN, MM, RR, KK, PP가 주어진다 (1N×M1061 \le N \times M \le 10^6, 1R101 \le R \le 10, 1K3×1051 \le K \le 3 \times 10^5, 1Pmin(N,M,10)1 \le P \le \min(N, M, 10)).

다음 NN개 줄에는 각각 정수가 MM개씩 주어진다. ii번째 줄의 jj번째 정수는 iijj열 칸에 쌓인 구획의 개수 hi,jh_{i,j}이다 (1hi,j1061 \le h_{i,j} \le 10^6).

다음 KK개 줄에는 사격이 한 줄에 하나씩 주어진다. 각 줄은 문자 하나와 정수 두 개로 이루어진다. 문자는 빔이 오는 방향으로 W, E, S, N 중 하나이다. W나 E이면 첫 번째 정수는 1 이상 NN 이하의 행 번호이고, N이나 S이면 1 이상 MM 이하의 열 번호이다. 두 번째 정수는 쏘는 층으로 1 이상 10610^6 이하이다. 사격은 주어진 순서대로 처리한다.

출력

KK번의 사격이 끝난 뒤 어떤 P×PP \times P 칸 영역 위에 남아 있는 구획 개수의 최댓값을 출력한다.