만드는 중입니다

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

Springfield

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

요약
각 기계의 반죽에는 정수 구간으로 주어진 맛이 들어 있습니다. 두 기계의 반죽을 합치는 명령을 처리하고, 해당 기계의 맛 개수를 출력합니다.
난이도

보통10점 중 7점

유형
유니온 파인드, 구간, 구현
정답자
아직 제출이 없습니다

문제

러스티의 도넛 가게에는 11번부터 NN번까지 번호가 붙은 반죽 기계가 NN대 있다. 각 기계에는 반죽이 하나씩 들어 있다. 반죽은 여러 가지 맛을 가질 수 있으며, 맛은 11 이상 10910^9 이하의 정수이다. 서로 다른 두 반죽은 합칠 수 있다. 합친 반죽의 맛 집합은 원래 두 반죽의 맛 집합의 합집합이다. 각 반죽의 처음 맛 범위가 주어지면, 러스티의 반죽 과정에 따라 QQ개의 명령을 수행해야 한다.

  • 1 a b: aa번 기계와 bb번 기계의 반죽을 남김없이 모두 긁어낸 뒤 합쳐서 aa번 기계에 넣는다. 이 명령은 aa번 기계와 bb번 기계에 반죽이 모두 남아 있을 때만 주어진다.
  • 2 a: aa번 기계에 든 반죽이 가진 맛의 개수를 출력한다. 이 명령은 aa번 기계에 반죽이 남아 있을 때만 주어진다.

입력

첫째 줄에 반죽 기계의 수 NN과 명령의 수 QQ가 공백으로 구분되어 주어진다. (1≤N,Q≤200 000)(1 \le N, Q \le 200\,000)

다음 NN개 줄에는 정수 ℓi\ell_i와 rir_i가 공백으로 구분되어 주어진다. 이는 ii번 기계에 든 반죽의 맛에 ℓi\ell_i 이상 rir_i 이하의 모든 정수가 포함된다는 뜻이다. (1≤ℓi≤ri≤109)(1 \le \ell_i \le r_i \le 10^9)

다음 QQ개 줄에는 위 두 형식 중 하나로 명령이 주어진다. 2번 명령은 하나 이상 주어진다.

출력

2번 명령이 주어질 때마다 해당 기계에 든 반죽이 가진 맛의 개수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3 7
    1 3
    2 4
    6 8
    2 1
    2 2
    2 3
    1 1 3
    2 1
    1 2 1
    2 2
    
    예상 출력
    3
    3
    3
    6
    7