체스판 안전한 칸

시간 제한2초메모리 제한128 MB

문제

n x m 크기의 체스판에 상대편 Queen, Knight, Pawn이 놓여 있다. 자신의 말을 놓아도 상대편 말에게 잡히지 않는 빈 칸을 안전한 칸이라고 한다. 안전한 칸의 개수를 구하라.

Queen은 가로, 세로, 대각선의 8방향으로 다른 말이 있는 칸 직전까지 공격할 수 있다. 중간에 말이 있으면 그 뒤쪽 칸은 공격하지 못한다.

Knight는 2 x 3 직사각형의 반대쪽 꼭짓점에 해당하는 8칸을 공격할 수 있다. Knight의 공격은 중간에 말이 있어도 막히지 않는다.

Pawn은 다른 말을 공격하지 않으며, Queen의 이동을 막는 장애물 역할만 한다.

입력

첫째 줄에 체스판의 행 수 n과 열 수 m이 주어진다. (1 <= n, m <= 1000)

둘째 줄에는 Queen의 개수 k와 이어서 k개의 위치 r_i c_i가 주어진다. 셋째 줄에는 Knight의 개수와 위치가 같은 형식으로 주어지고, 넷째 줄에는 Pawn의 개수와 위치가 같은 형식으로 주어진다.

각 위치에서 r_i는 행, c_i는 열을 뜻한다. 한 칸에는 말이 하나만 놓인다. Queen, Knight, Pawn의 개수는 각각 100 이하의 음이 아닌 정수이다.

출력

안전한 칸의 개수를 출력한다.