牛牛排队伍
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

n 个人排队,1 号排在 2 号前面,2 号排在 3 号前面,...,以此类推 n-1 号排在 n 号前面。在这个过程中,偶尔老师会把某个人叫走,叫走之后这个人就离开了队伍,假设本来 a 排在 b 前面,b 排在 c 前面,b 被叫走后 a 就排在了 c 前面。老师偶尔也会感到疑问,她想知道此时排在 a 号前面的同学是几号呢?
已知老师一共会有 k 次操作,每次会执行下面的一种:
1.x 叫走。
2. 求排在 x 前面的是谁。

输入描述:

第一行输入两个正整数 n 表示排队人数,k 表示老师的操作次数。
接下来 k 行,每行包含2个整数,表示一个操作,具体如下:
1 x :把 x 叫走,保证此时 x 一定在队伍里
2 x :输出排在 x 前面的人的编号,保证此时 x 一定在队伍里,如果没有人排在 x 前面,输出 0

输出描述:

输出包含若干行整数,即为所有操作 2 的结果。
示例1

输入

复制
5 4
2 1
1 3
2 5
2 4

输出

复制
0
4
2

说明

刚开始队伍为 1~2~3~4~5 ,老师把 3 号叫走后队伍为 1~2~4~5

备注:

本题读入量较大,请使用合理高效的读入方法。
以下提供一个c++的t组输出a+b的快读模板。
#include<bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t,a,b;
    cin>>t;
    while(t--){
        cin>>a>>b;
        cout<<a+b<<'\n';
    }
    return 0;
}