할아버지의 질문

시간 제한1초메모리 제한64 MB

요약
아이들이 내리는 진술이 순서대로 주어질 때, 현재까지 B번 이상인 아이 중 Y번 이하로 탄 가장 어린 아이를 묻는 질의에 답한다.
난이도

보통10점 중 7점

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

문제

마리차가 할아버지에게 동화를 들려주는데, 할아버지가 자꾸 이야기를 끊고 질문한다.

동화 속에서 어린이 NN명이 기차를 탄다. 어린이에게는 나이순으로 11번부터 NN번까지 번호가 붙어 있어서 11번이 가장 어리고 NN번이 가장 나이가 많다. 기차는 00번 역에서 출발해 11번, 22번, 33번 역 순서로 끝없이 정차한다.

마리차의 진술은 모두 같은 형태다. XX번 역에서 AA번 어린이가 내렸다. 진술이 나오는 순서는 역 번호와 아무 상관이 없다. XX번 역에서 내린 어린이는 역 XX개만큼 탄 것으로 센다.

할아버지의 질문도 형태가 정해져 있다. 지금까지 나온 진술만 놓고 볼 때, 번호가 BB 이상인 어린이 중에서 탄 역이 YY개 이하인 어린이 가운데 가장 어린 어린이는 누구인가. 질문한 시점까지 내렸다는 진술이 나오지 않은 어린이는 영원히 타고 간다고 본다. 가장 어린 어린이는 번호가 가장 작은 어린이를 뜻한다.

답은 할아버지가 질문한 그 시점을 기준으로 맞아야 한다. 나중에 새 진술이 나와서 답이 달라져도 상관없다.

마리차의 진술을 반영하면서 할아버지의 질문에 답하는 프로그램을 작성하시오.

입력

첫 줄에 어린이의 수 NN과 줄의 수 QQ가 주어진다 (2≤N,Q≤2000002 \le N, Q \le 200000).

다음 QQ개 줄은 각각 둘 중 하나다.

  • 마리차의 진술 M X A. M은 마리차를 뜻하고, XX와 AA는 정수다 (1≤X≤10000000001 \le X \le 1000000000, 1≤A≤N1 \le A \le N).
  • 할아버지의 질문 D Y B. D는 할아버지를 뜻하고, YY와 BB는 정수다 (1≤Y≤10000000001 \le Y \le 1000000000, 1≤B≤N1 \le B \le N).

마리차의 진술은 모두 서로 다른 어린이를 가리키고, 입력에는 할아버지의 질문이 적어도 한 줄 들어 있다.

출력

질문마다 조건을 만족하는 어린이의 번호를 한 줄에 하나씩 출력한다. 그런 어린이가 없으면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    3 4
    M 10 3
    M 5 1
    D 20 2
    D 5 1
    
    예상 출력
    3
    1
    
  2. 예제 2

    입력
    10 10
    M 20 10
    D 1 9
    M 2 3
    D 17 10
    M 20 2
    D 8 2
    M 40 1
    D 25 2
    M 33 9
    D 37 9
    
    예상 출력
    -1
    -1
    3
    2
    9