题号:NC229137
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld
题目描述
给出长度为

的序列

,有

个操作,每个操作为以下几种之一:
1. 给出

,对于

,
)
。
2. 给出

,对于

,
)
。
3. 给出

,求

,对

取模。
其中,
%3D(x)%5C%26(-x))
,
%3D2%5Ek(2%5E%7Bk%7D%5Cle%20x%3C2%5E%7Bk%2B1%7D))
。
输入描述:
接下来

行,每行输入三个整数

)
,表示操作的类型为

,操作的区间为

。
输出描述:
对于每个操作
,输出一个整数,为对应的区间和对
取模的结果。
示例1
输入
复制
5 4
5 2 2 9 7
1 1 5
3 1 1
2 1 3
3 2 5