D. 塔学疑云
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

小C最近爱玩杀戮尖塔,尤其沉迷于玩机宝(故障机器人)。现在他模拟了一局对战。

小C的牌组里有以下几种卡牌:

  • 漆黑+:生成一个黑暗充能球。使用所有黑暗充能球的被动能力。
  • 扩容+$$$K$$$:获得$$$K$$$个空的充能球栏位(假设栏位数量无上限)。
  • 碎片整理+$$$M$$$:获得$$$M$$$点集中。
  • 偏差认知+$$$(A,B)$$$:获得$$$A$$$点集中。在每回合开始时,失去$$$B$$$点集中。
  • 递归+:激发(并移除)最右边的充能球,然后生成一个刚才被激发的充能球(即生成时的计数值等于刚被激发的球的计数值)。如果没有充能球,则不操作。

为了防止你看不懂卡牌,小C给你解释了一些关键名词:

  • 充能球:初始有3个空栏位。生成充能球时,将它填入最右边的空充能球栏位,如果充能球栏位已满,会先激发(并移除)最右边的充能球,并将所有充能球右移一个栏位,再在空的栏位生成应该生成的充能球。回合结束时,使用所有充能球的被动能力一次。
  • 黑暗充能球:充能球的一种。被动:计数+=(max(6+集中, 0))。激发:对生命值最低的敌人(注:本题中实际上只有一名敌人)造成等同于计数值的伤害。计数值在刚生成时为6。
  • 集中:人物属性,初始为0。会影响黑暗充能球的被动能力。集中可以是负数。
  • debuff:偏差认知会产生一个debuff:"回合开始时,失去$$$B$$$点集中"。debuff效果可叠加。
生成充能球的示意图,最右边的球被激发,并生成到最右边的第一个空位。

同时,小C也可以选择结束回合。回合结束后,敌人完成行动后,我方下一回合开始。

这里,敌人的血量为$$$10^{100}$$$,行动只有"造成0点伤害"。

小C嫌杀戮尖塔动画太慢了,于是想请你算一算,完成所有操作后,总共能造成多少伤害。

由于答案可能很大,请您输出答案除以$$$10^9+7$$$的余数。

注意到,$$$(a+b) \% p = (a\%p + b\%p) \% p$$$,其中$$$\%$$$是取模操作,所以您可以在计算的过程中取模。

Input

输入一个整数$$$q$$$,表示操作次数。

接下来$$$q$$$行,每行表示一个操作:

  • 1 表示打出"漆黑+"。
  • 2 K 表示打出"扩容+$$$K$$$"
  • 3 M 表示打出"碎片整理+$$$M$$$"
  • 4 A B 表示打出"偏差认知+$$$(A,B)$$$"
  • 5 表示打出"递归+"
  • 6 表示结束当前回合。

其中:

$$$1\le K,M,A,B\le 10^9$$$

$$$1\le q\le 10^6$$$

Output

输出一个整数,表示最后的伤害值,由于结果可能过大,您需要输出结果除以$$$10^9+7$$$的余数。

Example
Input
14
1
1
1
1
2 1
1
5
3 2
1
5
4 4 1
6
5
5
Output
186
Note

对于给出的样例,完成每次操作后的充能球计数值如下:

time 1: [12]

time 2: [12 18]

time 3: [12 18 24]

time 4: [12 18 24]

time 5: [12 18 24]

time 6: [12 18 24 30]

time 7: [30 12 18 24]

time 8: [30 12 18 24]

time 9: [14 38 20 26]

time 10: [26 14 38 20]

time 11: [26 14 38 20]

time 12: [38 26 50 32]

time 13: [32 38 26 50]

time 14: [50 32 38 26]