智乃酱的cube
题号:NC226167
时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

智乃酱有(立方体),一开始,这些立方体的长宽高均为,也就是它们的体积都为,并且这些立方体从排成一排。
接下来智乃酱将要进行次操作。智乃酱可以将这个区间内所有的立方体某个维度增加,或者向你询问从中所有立方体的体积之和。
由于这个数字比较大,所以每次查询时你只用输出从中所有立方体的体积之和mod 后的结果即可。

输入描述:

第一行输入两个正整数表示区间的长度与操作的数目。
接下来行,每行首先输入一个字符表示操作的类型。
当输入的字符为时,还需输入三个整数表示对l到r中所有立方体的x轴上的边的边长增加
当输入的字符为时,还需输入三个整数表示对l到r中所有立方体的y轴上的边的边长增加
当输入的字符为时,还需输入三个整数表示对l到r中所有立方体的z轴上的边的边长增加
当输入的字符为时,还需输入两个整数表示查询l到r中所有立方体的体积之和mod 后的结果。

输入保证至少进行了一次查询操作。

输出描述:

对于每个查询操作,输出l到r中所有立方体的体积之和mod 后的结果。
示例1

输入

复制
5 9
x 1 3 1
y 2 4 1
q 1 5
z 3 5 1
q 1 5
x 1 5 1
y 1 5 1
z 1 5 1
q 1 5

输出

复制
13
20
87