소용돌이 문양
시간 제한3초메모리 제한1024 MB
K개의 소용돌이 문양이 각 칸을 몇 번 덮는지 세고, 격자 전체에 대한 XOR 가중 합을 출력한다.
문제
시간이 흐르며, 사람들은 어느 순간부터 소용돌이 문양에 관심을 가졌다. 빛의 흐름에서, 돌 무늬에서, 구조물의 바닥에서, 그들은 소용돌이 문양을 찾아냈다.
처음에는 작은 징후처럼 보였지만, 곧 소용돌이는 섬 곳곳에 나타나기 시작했다.
남겨진 소용돌이의 흔적을 따라가고, 그들이 마주한 형상을 복원하여라.
광장의 바닥에는 크기의 격자가 새겨져 있다. 이때 위에서부터 번째 행, 왼쪽에서부터 번째 열의 칸을 로 표기한다.
최근 이 격자 위에서 총 개의 소용돌이 문양이 관측되었다.
소용돌이 문양은 특정 위치를 중심으로 하여 다양한 반지름을 가진다. 아래 그림은 반지름이 각각 , , 인 소용돌이 문양의 예시이다.

(격자선은 이해를 돕기 위해 그려졌으며, 색칠된 칸이 실제 소용돌이 문양을 나타낸다.)
격자의 각 칸이 몇 개의 소용돌이 문양에 포함되었는지 알아내보자.
입력
첫 줄에 격자의 크기를 나타내는 두 정수 , 과 소용돌이 문양의 개수 가 주어진다.
둘째 줄에는 정수 , 가 주어진다.
이후 개의 줄에 걸쳐, 각 줄에는 각각 세 정수 , , 가 주어진다. 이는 번째로 관측된 소용돌이 문양이 칸 를 중심으로 한 반지름이 인 소용돌이 문양임을 의미한다.
출력
인 모든 에 대해, 를 칸 가 포함되는 소용돌이 문양의 수라고 정의하자. 의 모든 값을 출력하려면 많은 시간이 소요되므로, 다음 값을 대신 출력한다.
\[\sum_{r=1}^N\sum_{c=1}^M\left( (r\times p)\oplus(c\times q)\oplus A_{rc} \right)\]
단, 는 이진 XOR 연산을 의미한다.
제한
- 는 짝수
힌트
소용돌이 문양의 엄밀한 정의는 다음과 같다.
반지름이 인 소용돌이 문양은 크기의 격자 한 칸으로 정의된다.
이상의 모든 짝수 에 대해, 반지름이 인 소용돌이 문양은 다음과 같은 방식으로 만들 수 있다.
- 크기가 인 격자를 준비한다.
- 반지름이 인 소용돌이 문양을 격자의 중심에 색칠한다.
- 위에서 색칠한 칸 중 가장 오른쪽 아래에 있는 칸에서 시작해, 오른쪽으로 두 칸을 더 색칠한다.
- 마지막으로 색칠한 칸에서 시작해, 위로 칸, 왼쪽으로 칸, 아래로 칸, 오른쪽으로 칸을 차례로 색칠한다.
위와 같은 방식으로 인 소용돌이 문양을 만들면 아래와 같다.
