이미지 수집은 즐거워

시간 제한5초메모리 제한256 MB

요약
모두 흰색인 2^N × 2^N 격자에서 행 또는 열을 뒤집는 연산을 Q번 수행하며, 매 연산 후 이미지를 사진 트리로 압축한 크기를 구한다.
난이도

어려움10점 중 8점

유형
분할 정복, 구현, 수학, 비트 연산
정답자
아직 제출이 없습니다

문제

JOI 군은 이미지를 많이 모으는 것을 아주 좋아해서 많은 이미지를 가지고 있다. 최근 JOI 군은 이미지를 너무 많이 모은 탓에 하드 디스크의 용량이 부족해지고 있다는 것을 알아차렸다. 새 하드 디스크를 살 돈은 없지만, JOI 군에게 가지고 있는 이미지를 삭제하는 것은 이 이상 없는 고통이므로, 이미지를 잘 압축해서 용량을 줄이기로 했다.

이미지는 세로 2N2^N행, 가로 2N2^N열의 정사각형 모양으로 늘어선 총 2N×2N2^N \times 2^N개의 화소로 나타낸다. 각 화소는 흰색이나 검은색 중 하나이다.

이런 이미지를 JOI 군은 다음과 같은 방법으로 압축하기로 했다.

  • 이미지 안의 화소가 모두 같은 색이면, 그 색만 기록한다. 이때 압축 후 데이터의 크기는 1이다.
  • 그렇지 않으면, 이미지를 4개의 더 작은 이미지로 나눈다. 이미지가 세로 2k2^k행, 가로 2k2^k열이라고 하면, 세로와 가로 각각 중심에서 이미지를 분할하여 세로 2k−12^{k-1}행, 가로 2k−12^{k-1}열의 이미지 4개를 얻는다. 이 4개의 작아진 이미지를 같은 방법으로 압축한다. 이때 압축 후 데이터의 크기는 4개의 작은 이미지의 압축 후 데이터 크기의 합에 1을 더한 것으로 한다.

JOI 군은 이 방법으로 정말 이미지가 압축되는지 불안해졌기 때문에, 여러 가지 이미지에 대해 실험을 해 보기로 했다. 실험 방법은 다음과 같다.

  • 먼저 모든 화소가 흰색인 이미지를 준비한다.
  • i=1,…,Qi = 1, \dots, Q에 대해, "Ti=0T_i = 0이면 위에서 세어 XiX_i번째 행의 2N2^N개 화소, Ti=1T_i = 1이면 왼쪽에서 세어 XiX_i번째 열의 2N2^N개 화소의 흑백을 각각 반전시킨다"는 조작을 한다. 즉, 위에서 aa행이고 왼쪽에서 bb열인 화소를 (a,b)(a, b)라고 쓸 때, 각 ii에 대해 Ti=0T_i = 0이면 1≤b≤2N1 \le b \le 2^N을 만족하는 화소 (Xi,b)(X_i, b)에, Ti=1T_i = 1이면 1≤a≤2N1 \le a \le 2^N을 만족하는 화소 (a,Xi)(a, X_i)에 대해, 화소가 흰색이면 검은색으로, 검은색이면 흰색으로 바꾸는 조작을 한다.
  • 각 ii에 대해, ii번째 조작이 끝난 뒤의 이미지를 JOI 군의 방법으로 압축했을 때의 압축 후 데이터의 크기를 조사한다.

실험에서는 조작을 가능한 한 많이 하기 위해, 압축 후 데이터의 크기를 빠르게 조사할 필요가 있다.

이미지의 크기를 나타내는 정수 NN, 조작의 횟수 QQ 및 QQ번의 조작 지시가 주어졌을 때, 각 조작이 끝난 뒤의 이미지를 JOI 군의 방법으로 압축했을 때의 압축 후 데이터의 크기를 구하는 프로그램을 작성하시오.

입력

표준 입력에서 다음 입력을 읽는다.

  • 1번째 줄에는 2개의 정수 N,QN, Q가 공백을 구분으로 쓰여 있으며, 이미지가 2N2^N행 2N2^N열의 크기라는 것과 조작을 하는 횟수가 QQ번이라는 것을 나타낸다.
  • 이어지는 QQ번째 줄에는 조작 지시가 쓰여 있다. QQ번째 줄 중 ii번째 줄 (1≤i≤Q1 \le i \le Q)에는 2개의 정수 Ti,XiT_i, X_i (0≤Ti≤10 \le T_i \le 1 그리고 1≤Xi≤2N1 \le X_i \le 2^N)가 공백을 구분으로 쓰여 있으며, ii번째 조작은 Ti=0T_i = 0이면 위에서 XiX_i번째 행, Ti=1T_i = 1이면 왼쪽에서 XiX_i번째 열의 화소 흑백을 모두 반전시키는 것을 나타낸다.

출력

표준 출력에 QQ행 출력한다. ii행째 (1≤i≤Q1 \le i \le Q)에는 ii번째 조작이 끝난 뒤의 이미지를 JOI 군의 방법으로 압축했을 때의 압축 후 데이터의 크기를 나타내는 정수 1개를 출력한다.

제한

  • 1≤N≤201 \le N \le 20.
  • 1≤Q≤2 000 0001 \le Q \le 2\,000\,000.

예제1

  1. 예제 1

    입력
    2 3
    0 1
    1 2
    0 3
    
    예상 출력
    13
    17
    21