공격받는 칸

거대한 보드에서 룩을 옮길 때마다 같은 행이나 열에 있는 룩의 파워를 xor한 값이 0이 아닌 칸 수를 셉니다.

보통7비트 연산해시맵수학아직 제출이 없습니다시간 제한2초메모리 제한64 MB

문제

미르코는 체스와 프로그래밍을 좋아한다. 평범한 체스에는 금방 싫증이 나서, 룩만 가지고 노는 방법을 만들었다.

NNNN열짜리 체스판을 구해서 그 위에 룩 KK개를 올려놓았다.

규칙은 다음과 같다.

  1. 룩마다 힘이 정수 하나로 정해져 있다.
  2. 룩은 자기가 서 있는 칸을 뺀, 같은 행이나 같은 열의 모든 칸을 본다.
  3. 어떤 칸을 보고 있는 룩의 힘을 모두 XOR한 값이 00보다 크면 그 칸은 공격받는다.

룩이 서 있는 칸도 공격받을 수 있다.

미르코는 처음 배치에서 시작해 이동을 PP번 한다. 이동을 한 번 마칠 때마다 공격받는 칸이 몇 개인지 구하여라.

룩은 판 위의 빈 칸이면 어디로든 옮길 수 있다. 이동은 같은 행이나 같은 열로 제한되지 않는다.

입력

첫째 줄에 정수 NN, KK, PP가 주어진다. (1N1091 \le N \le 10^9, 1K1051 \le K \le 10^5, 1P1051 \le P \le 10^5)

다음 KK개의 줄에는 정수 RR, CC, XX가 주어진다. (1R,CN1 \le R, C \le N, 1X1091 \le X \le 10^9) 처음에 칸 (R,C)(R, C)에 힘이 XX인 룩이 있다는 뜻이다.

다음 PP개의 줄에는 정수 R1R_1, C1C_1, R2R_2, C2C_2가 주어진다. (1R1,C1,R2,C2N1 \le R_1, C_1, R_2, C_2 \le N) 룩이 칸 (R1,C1)(R_1, C_1)에서 칸 (R2,C2)(R_2, C_2)로 옮겨갔다는 뜻이다.

어느 시점에도 한 칸에 룩이 두 개 놓이는 일은 없다.

출력

PP개의 줄을 출력한다. kk번째 줄에는 kk번째 이동을 마친 뒤 공격받는 칸의 개수를 출력한다.

힌트

첫 번째 예제를 설명하면 이렇다. 첫 번째 이동을 마치면 판의 모든 칸이 공격받는다. 예를 들어 칸 (1,1)(1, 1)을 보는 룩은 하나뿐이므로 그 칸의 XOR 값은 11이다. 두 번째 이동을 마치면 공격받는 칸이 하나도 없다. 칸 (1,1)(1, 1)은 룩 두 개가 보고 있고, 두 힘의 XOR은 00이다.