[COCI2009-2010#1] ALADIN

题目描述

给你 $n$ 个盒子,有 $q$ 个操作,操作有两种: - 第一种操作输入格式为 `1 L R A B`,表示将编号为 $L$ 到 $R$ 的盒子里的石头数量变为 $(X-L+1) \times A \bmod B$,其中 $X$ 为盒子的编号。 - 第二种操作输入格式为 `2 L R`,表示查询编号为 $L$ 到 $R$ 的盒子里的石头总数。

输入输出格式

输入格式


第一行有两个数字 $n$($1 \leq n \leq 10^9$),$q$ ($1 \leq q \leq 5 \times 10^4$)。 接下来 $q$ 行表示询问操作。

输出格式


对于每个第二种操作,输出石头总数。

输入输出样例

输入样例 #1

6 3
2 1 6
1 1 5 1 2
2 1 6

输出样例 #1

0
3

输入样例 #2

4 5
1 1 4 3 4
2 1 1
2 2 2
2 3 3
2 4 4

输出样例 #2

3
2
1
0

输入样例 #3

4 4
1 1 4 7 9
2 1 4
1 1 4 1 1
2 1 4

输出样例 #3

16
0

说明

- 对于 $30\%$ 的数据,$n, q \leq 10^3$; - 对于 $70\%$ 的数据,$q \leq 10^3$。