안정적인 구조
시간 제한3초메모리 제한1024 MB
각 행과 열에 빛이 하나씩 있고 감소하는 세 쌍이 없는 안정적 배치 중, 추가된 접두 최댓값 조건을 만족하는 개수를 삽입과 삭제가 있는 쿼리에서 센다.
문제
도시와 의식이 자리를 잡은 후, 사람들은 빛의 흐름 속에서 더 깊은 질서를 찾고자 했다.
그들은 빛을 따라 형상을 새기고 무늬를 관찰하며 그 안에 담긴 조화의 규칙을 헤아리려 했다.
그러나 얼마 지나지 않아, 그들은 모든 무늬가 조화를 이룰 수 있는 것은 아니라는 사실을 깨달았다. 일부 배열은 균형을 잃고 무너졌고, 사람들은 조화를 이루는 형상을 찾기 위해 고민을 거듭했다.
그들이 남긴 배열을 되짚고, 조화로운 빛의 무늬를 다시 그려보아라.
사람들은 크기의 격자 위에 빛을 하나씩 배치하며, 안정적인 무늬를 이루는 방법을 연구했다. 위에서부터 번째 행, 왼쪽에서부터 번째 열의 격자칸을 로 표기한다.
다음 조건을 만족하는 배치를 안정적인 구조라 부른다.
- 격자의 각 행과 각 열에 정확히 하나의 빛이 존재해야 한다.
- 불안정한 배열이 존재하지 않는다.
- 세 빛 에 대해, , 을 동시에 만족한다면 이를 불안정한 배열이라고 한다.
예를 들어, 아래 그림에서 왼쪽은 안정적인 구조이다. 하지만 오른쪽은 세 칸 , , 이 불안정한 배열을 이루므로, 안정적인 구조가 아니다.

사람들은 더 정교한 구조를 탐구하기 위해 다음과 같은 형태의 조건들을 제시했다.
- 열부터 열까지 배치된 개 빛의 행 번호 중 최댓값이 이어야 한다.
사람들은 이러한 형태의 조건을 추가하거나 제거하며 안정적인 구조의 수가 어떻게 달라지는지 살펴보고자 한다.
입력
첫 줄에 격자의 크기를 나타내는 정수 과 쿼리의 수 가 공백으로 구분되어 주어진다.
이후 개의 줄에 걸쳐, 그중 번째 줄에는 다음과 같은 형태 중 하나의 쿼리가 주어진다.
- : 조건이 새로 추가된다. 열부터 열까지 배치된 개 빛의 행 번호 중 최댓값이 이어야 한다.
- : 번 쿼리로 인해 추가된 조건이 제거된다.
- : 현재 존재하는 조건을 모두 만족하는 안정적인 구조의 개수를 출력한다.
쿼리가 들어오기 전에는 조건이 하나도 없다.
출력
번 종류의 쿼리가 들어올 때마다, 현재 존재하는 조건을 모두 만족하는 안정적인 구조의 개수를 로 나눈 나머지를 한 줄에 하나씩 출력한다.
제한
아래 제한에서 는 번 쿼리의 종류를 의미한다.
- 번 종류의 쿼리가 하나 이상 존재한다.