#P000009. 数据结构

数据结构

题目描述

维护一个正整数多重集合SS,初始为空,支持两个操作:

  • 插入:插入一个新数xx (x100000)(x\leq 100000)

  • 修改:令集合中所有数加 11

每次操作结束后,计算 SS 中所有数的kk次方和,kk 预先给定。

和可能很大,你只需要输出它对1e9+71e9+7 的余数即可。

输入格式

第一行两个数M,kM,k,其中MM表示操作次数。

接下来 MM 行,每行可能为以下两种之一:

  • 0x0 x ,表示插入一个大小为 xx 的新元素。

  • 1 ,表示令集合 S 里所有数加一。

输出格式

输出 MM 行,第 ii 行表示第 ii 次操作结束之后,SS 中所有数的 kk 次方和。

样例

3 2
0 1
0 1
1
1
2
8

样例解释

第一次操作后,集合为 11

第二次操作后,集合为 111 1

第三次操作后,集合为 222 2

大数据

限制条件

对全部的测试数据, M2×105,k50M \leq 2 \times 10^{5}, k \leq 50.

  • 1010 分的数据, k=1k=1;

  • 2020 分的数据, M3000M \leq 3000;

  • 2020 分的数据, k=2k=2;

  • 2020 分的数据, k=3k=3;

  • 3030 分的数据, 无特殊限制。