#THU20224B. 众数

众数

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

nn 个序列(依次编号为 0,1,...,n10,1,...,n-1),初始时各个序列都为空,你的任务是维护这 nn 个序列,需要进行的各种操作的表示与意义如下:

  • 1 i k x1~i~k~x:在第 ii 个序列的末尾插入 kk 个值都为 xx 的数;
  • 2 i k2~i~k:删除第 ii 个序列末尾的 kk 个数,若该序列已不足 kk 个数,则删除序列中全部的数;
  • 3 i3~i:询问第 ii 个序列的众数。

其中,一个序列的众数定义为该数列中出现次数最多的数,若出现次数最多的数有多种,取其中数值最小的数。

输入格式

从标准输入读入数据。

输入的第一行为两个正整数 n,qn,q,表示序列的个数与操作次数。

接下来 qq 行描述依次进行的操作,每行描述一个操作,每个操作的输入方式同题目描述。

输出格式

输出到标准输出。

对于每个询问操作,输出询问时对应序列中出现次数最多的数中数值最小者,并换行。

2 6
1 0 2 1
1 0 3 2
3 0
2 0 1
3 0
3 1
2
1
-1

样例 1 解释

11 次询问时,00 号序列为 1 1 2 2 21~1~2~2~2,唯一众数为 22

22 次询问时,00 号序列为 1 1 2 21~1~2~2,两种数都出现了 22 次,取较小的 11

33 次询问时,11 号序列为空,输出 1-1

子任务

对于所有输入数据,均满足 1n105, 1q1061\le n\le 10^5,~1\le q\le 10^6,任何出现的序列编号 ii 都满足 0i<n0\le i<n,序列中出现的任何数值 xx 均满足 0x1090\le x \le 10^9,插入和删除操作中的数目 kk 满足 1k1091\le k\le 10^9

本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。

子任务编号 分值 nn\le qq \le kk \le xx \le
1 10 1010 10310^3 33 10310^3
2 15 10910^9
3 10410^4 10510^5 10310^3
4 10 10910^9
5 1010 10310^3 10910^9
6 10410^4 10510^5
7 15 10510^5 10610^6 33
8 10910^9

提示

本题输入量较大,请采用效率较高的读入方式。