【题目描述】
有一个数列,在初始时,数列为空。
输入数据第一行有两个非负整数n和min。n表示下面有多少条命令。
命令可以是以下四种之一:
名称
|
格式
|
作用
|
I命令
|
I_k
|
添加一个点,初始值为k。如果该点的值低于min,它将马上删除(不计入删除 的数目);
|
A命令
|
A_k
|
给现存每个点加上k;
|
S命令
|
S_k
|
把每个点减少k(减少之后,如果有点的值低于min,则这些点马上删除;
|
F命令
|
F_k
|
查询第k多的点的值;
|
_(下划线)表示一个空格,I命令、A命令、S命令中的k是一个非负整数,F命令中的k是一个正整数。
【输入格式】
第一行有两个非负整数n和min。n表示下面有多少条命令,min表示工资下界。
接下来的n行,每行表示一条命令。
【输出格式】
输出文件的行数为F命令的条数加一。
对于每条F命令,输出一行,仅包含一个整数,为当前第k大的值,如果k大于目前点的数目,则输出-1。
输出最后一行包含一个整数,为总共删除的点的总数。
【样例输入】
9 10
I 60
I 70
S 50
F 2
I 30
S 15
A 5
F 1
F 2
【样例输出】
10
20
-1
2
【数据提示】
I命令的条数不超过100000
A命令和S命令的总条数不超过100
F命令的条数不超过100000
每次调整的调整量不超过1000
新添加的点的值不超过100000