Little Marica is making up a nonsensical unusual fairy tale and is telling to her grandfather
who keeps interrupting her and asking her stupid intriguing questions.
In Marica’s fairy tale, \(N\) children, denoted with numbers from 1 to \(N\) by their age (from the
youngest denoted with 1, to the oldest denoted with \(N\)), embarked on a train ride. The train
leaves from the station 0 and stops in order at stations 1, 2, 3 ... to infinity.
Each of the following Marica’s statements is of the form: “At stop \(X\), child \(A\) got out”,
where the order of these statements is completely arbitrary. In other words, it does not
depend on the station order. Her grandfather sometimes asks a question of the form:
“Based on the statements so far, of the children denoted with a number greater than
or equal to \(B\), who is the youngest child that rode for \(Y\) or less stops?” If at the
moment the grandfather asks the question it hasn’t been said so far that a child is getting off
the train, we assume that the child is riding for an infinite amount of stops.
Marica must give a correct answer to each of her grandfather’s questions, otherwise the
grandfather will get mad and go to sleep. The answer must be correct in the moment when
the grandfather asks the question, while it can change later given Marica’s new statements,
but that doesn’t matter. Write a program that tracks Marica’s statements and answers her
grandfather’s questions.
The first line of input contains the positive integers \(N\) and \(Q\) (\(2 \le N\), \(Q \le 200\,000\)), the
number of children and the number of statements. Each of the following Q lines describes:
●
either Marica’s statement of the form “M” \(X\) \(A\), where “M” denotes Marica, and \(X\) and
\(A\) are positive integers (\(1 \le X \le 1\,000\,000\,000\), \(1 \le A \le N\)) from the task,
●
or her grandfather’s question of the form “D” Y B, where “D” denotes the grandfather,
and \(Y\) and \(B\) are positive integers (\(1 \le Y \le 1\,000\,000\,000\), \(1 \le B \le N\)) from the task.
All of Marica’s statements correspond to different children and at least one line in the input is
her grandfather’s question.
For each grandfather’s question, output the number of the required child in its own line. If no
such child exists, output -1.
3 4
M 10 3
M 5 1
D 20 2
D 5 1
3
1
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