C1142 [JSOI2008]最大数

内存限制:256 MB 时间限制:1000 ms

题目描述

现在请求你维护一个数列,要求提供以下两种操作:

  1. 查询操作。
    语法:Q L

    功能:查询当前数列中末尾 $L$ 个数中的最大的数,并输出这个数的值。
    限制:$L$ 不超过当前数列的长度。
  2. 插入操作。
    语法:A n

    功能:将 $n$ 加上 $t$,其中 $t$ 是最近一次查询操作的答案(如果还未执行过查询操作,则 $t=0$),并将所得结果对一个固定的常数 $D$ 取模,将所得答案插入到数列的末尾。
    限制:$n$ 是非负整数并且在长整范围内。注意:初始时数列是空的,没有一个数。

输入格式

第一行两个整数,$M$ 和 $D$,其中 $M$ 表示操作的个数($M \le 200,000$),$D$ 如上文中所述,满足 $D$ 在 long int 内。

接下来 $M$ 行,查询操作或者插入操作。

输出

对于每一个询问操作,输出一行。该行只有一个数,即序列中最后 $L$ 个数的最大数。

样例

样例输入 1

5 100 A 96 Q 1 A 97 Q 1 Q 2

样例输出 1

96 93 96

提示