만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

두 개의 지도

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

요약
구간을 추가하거나 삭제할 때마다, 현재 있는 구간 중 합집합의 길이가 s가 되는 두 구간의 쌍 수를 셉니다.
난이도

어려움10점 중 9점

유형
세그먼트 트리, 분할 정복, 정렬
정답자
아직 제출이 없습니다

문제

닥터 스트레인지는 티베트에 있는 에인션트 원의 성을 찾으러 간다. 지도가 없으면 한 걸음도 나아갈 수 없다.

티베트는 직선 위에 놓여 있다. 닥터는 지도를 여러 장 가지고 있고, 각 지도는 이 직선의 한 구간을 보여 준다. 닥터 스트레인지는 지도를 정확히 두 장 가져간다. 이 두 지도가 보여 주는 티베트 영역의 길이는 ss와 같아야 한다. 이 영역은 연속일 필요가 없다. 어떤 부분이 두 지도에 모두 나타나 있다면, 그 부분은 한 번만 센다.

여행을 떠나기 전에 닥터는 새 지도를 사고 낡은 지도를 판다. 컬렉션이 바뀔 때마다 위 조건을 만족하는 지도 두 장을 고르는 방법이 몇 가지인지 알고 싶다.

입력

첫 줄에 정수 ss와 nn이 주어진다. ss는 관심 있는 길이이고, nn은 컬렉션을 바꾸는 횟수이다 (1≤s≤1091 \le s \le 10^9, 1≤n≤1051 \le n \le 10^5).

이어지는 nn개의 줄마다 사건이 하나씩 주어진다.

  • 1 l_i r_i 형태의 줄은 닥터가 티베트의 lil_i부터 rir_i까지를 보여 주는 새 지도를 샀다는 뜻이다 (li<ril_i < r_i).
  • 2 k 형태의 줄은 닥터가 사건 번호 kk에서 얻은 지도를 팔았다는 뜻이다. 사건은 1부터 번호가 매겨진다. 사건 kk는 항상 타입 1이며, 같은 지도를 두 번 팔 수는 없다.

모든 좌표는 절댓값이 5⋅1085\cdot10^8 이하인 정수이다. 같은 지도가 여러 장 있을 수 있다. 처음에 닥터는 지도를 가지고 있지 않다.

출력

각 사건이 끝난 뒤, 두 지도가 보여 주는 티베트 영역의 길이가 ss와 같아지도록 지도 두 장을 고르는 방법의 수를 출력한다.

예제1

  1. 예제 1

    입력
    10 6
    1 0 8
    1 7 10
    1 5 15
    2 2
    1 12 14
    2 5
    
    예상 출력
    0
    1
    2
    0
    2
    0