UFO
시간 제한2초메모리 제한256 MB
행이나 열을 따라 일정한 높이에서 최대 R개의 블록을 파괴하는 레이저 사격을 시뮬레이션한 뒤 살아남은 블록이 가장 많은 P×P 영역의 블록 수를 구합니다.
문제
사막에 불시착한 외계 우주선을 파괴해야 한다. 우주선은 단위 정육면체 블록으로 이루어져 있고, 바닥 층은 직사각형이다. 이 직사각형의 칸에는 블록이 여러 개 쌓여 있으며, 각 칸의 층은 바닥부터 층, 층 순으로 번호를 매긴다. 행 번호는 북쪽에서 남쪽으로 부터 까지이고, 열 번호는 서쪽에서 동쪽으로 부터 까지이다. 아래 그림은 , 인 우주선을 위에서 본 모습이다.

블록은 레이저로만 자를 수 있는 금속이라서 우주선 네 면에 레이저포를 설치했다. 레이저는 발사한 면에 수직이고 지면과 평행하게, 정해진 한 층을 따라 날아간다.
발사 한 번은 면, 번호, 높이 로 정해진다. 서쪽에서 쏜 레이저는 지정된 행을 따라 열에서 열 방향으로 나아가고, 동쪽에서 쏜 레이저는 같은 행을 열에서 열 방향으로 나아간다. 북쪽에서 쏜 레이저는 지정된 열을 따라 행에서 행 방향으로 나아가고, 남쪽에서 쏜 레이저는 같은 열을 행에서 행 방향으로 나아간다.
레이저는 그 직선 위의 칸을 하나씩 지난다. 지나는 칸에 블록이 개 이상 쌓여 있으면 층의 블록을 파괴하고, 그 위에 있던 블록은 한 층씩 내려앉아 그 칸의 높이가 만큼 줄어든다. 한 칸에서 파괴되는 블록은 최대 한 개이며, 레이저는 곧바로 다음 칸으로 나아간다. 블록이 개보다 적게 쌓인 칸은 그대로 통과한다. 레이저는 블록을 개 파괴하면 멈추고, 그전에 우주선을 벗어나도 멈춘다.
번의 발사가 끝난 뒤 크기의 정사각형 구역에 공습을 가한다. 남아 있는 블록이 가장 많은 구역을 골라 그 안의 블록을 모두 파괴한다. 공습으로 파괴하는 블록의 최대 개수를 구하라.
입력
첫째 줄에 정수 , , , , 가 주어진다 (, , , ).
다음 개 줄에는 각각 개의 정수가 주어진다. 번째 줄의 번째 수는 칸에 쌓인 블록의 개수이고, 이상 이하이다.
다음 개 줄에는 발사 정보가 한 줄에 하나씩, 문자 하나와 정수 두 개가 공백으로 구분되어 주어진다. 문자는 서쪽이면 W, 동쪽이면 E, 남쪽이면 S, 북쪽이면 N이다. W와 E는 첫 번째 정수가 이상 이하의 행 번호이고, N과 S는 이상 이하의 열 번호이다. 두 번째 정수는 발사 높이이고 이상 이하이다.
출력
번의 발사가 끝난 뒤 구역에 남아 있는 블록 개수의 최댓값을 출력한다.
힌트

첫 번째 예제의 발사를 모두 끝낸 뒤 우주선의 모습이다. 색칠한 정사각형이 블록이 가장 많이 남은 구역이다.