# 序列
## 题目背景
搬运序列。
## 题目描述
有一个序列 $a_n$ 和若干操作。
- $\mathrm{1\ l \ r \ }$ 求 $a_l$ 到 $a_r$ 的和
- $\mathrm{2\ l \ r \ val \ }$ 将 $a_l$ 到 $a_r$ 赋值为 $\mathrm{val}$
- $\mathrm{3\ l \ r \ val\ }$ 将 $a_l$ 到 $a_r$ 加上 $\mathrm{val}$
- $\mathrm{4\ l_1 \ r_1 \ l_2 \ r_2 }$ 将 $a_{l_1}$ 到 $a_{r_1}$ 复制到 $a_{l_2}$ 到 $a_{r_2}$ 处。
- $\mathrm{5\ l_1 \ r_1 \ l_2 \ r_2 }$ 将 $a_{l_1}$ 到 $a_{r_1}$ 与 $a_{l_2}$ 到 $a_{r_2}$ 交换
- $\mathrm{6\ l \ r \ }$ 将 $a_l$ 到 $a_r$ 翻转
## 输入格式
第一行两个数 $n$ 和 $m$,为序列长度和操作个数。
第二行 $n$ 个数,为 $a_i$。
下面 $m$ 行,每行为操作种类和相应的若干整数。
## 输出格式
若干行,对于每个 $1$ 操作,输出答案。
由于答案可能过大,对 $10^9+7$ 取模。
最后一行输出序列 $a_n$。当然也要取模。
## 样例 #1
### 样例输入 #1
10 10 7 1 3 2 2 4 0 1 2 2 4 10 10 3 3 3 4 10 5 6 6 7 6 9 10 1 10 10 5 9 10 6 7 2 8 10 0 5 4 4 5 5 5 2 4 8 10 3 3 9 0
### 样例输出 #1
7 7 0 0 0 7 7 7 1 2 7
## 提示
**请注意常数优化**
若是 $\mathrm{copy}$ 和 $\mathrm{swap}$ 操作,保证 $r_1-l_1=r_2-l_2$ 且区间不重叠。
保证数据随机。
对于 $30\%$ 的数据,保证 $\ n,m\le 10^3\ $。
对于 $50\%$ 的数据,保证 $\ n,m\le 5\times 10^4\ $。
对于 $70\%$ 的数据,保证 $\ n,m\le 1.5\times 10^5\ $。
对于 $100\%$ 的数据,保证 $\ n,m\le 3\times 10^5\ ,\ 0\le a_i,\mathrm{val}\lt Mod\ $。