给一个长为n的序列,m次操作,每次操作: 1.区间加 2.对于区间,查询 ,一直到- 请注意每次的模数不同。
输入描述:
第一行两个整数 n,m 表示序列长度和操作数接下来一行,n个整数,表示这个序列接下来m行,可能是以下两种操作之一:操作1:区间[l,r]加上 x操作2:查询区间[l,r]的那个式子mod p的值


输出描述:
对于每个询问,输出一个数表示答案
示例1

输入

6 4
1 2 3 4 5 6
2 1 2 10000007
2 2 3 5
1 1 4 1
2 2 4 10

输出

1
3
1

备注:
n , m 序列中每个数在 [1,2e9] 内,x = 2e9 , p = 2e7
加载中...