超超的序列 加强

题目背景

孙1超总是喜欢疯言疯语,有一天,他随口说出了一串序列,又想对某几个特定位置的值进行修改和求和。由于孙1超十分菜,所以他来找你帮助。 ## 请不要抄题解。

题目描述

给定序列 $a$,并且给出两种操作: - `1 x y v`:将所有 $a_i$ 的值加上 $v$,其中 $i\equiv y\pmod {2^x}$。 - `2 x y`:询问所有 $a_i$ 的和,其中 $i\equiv y\pmod {2^ x}$。 **本题强制在线。**

输入输出格式

输入格式


第一行 $n,m$ 两个整数。 第二行 $n$ 个整数,第 $i$ 个表示 $a_i$。 接下来若干行,每行给出若干个整数: 当 $op=1$ 时,$op'$ 的后三个整数依次为该操作的 $x,y,v$; 当 $op=2$ 时,$op'$ 的后两个个整数依次为该操作的 $x,y$。 其中保证没有多余的数输入。 每次操作的 $op=(\operatorname{lastans}+op')\bmod 2+1$。 其中 $\rm lastans$ 表示上一个输出的答案,若之前没有询问,则 $\rm lastans=0$。

输出格式


输出每次询问的结果。

输入输出样例

输入样例 #1

5 3
1 2 3 4 6
1 2 1
1 1 1 3
2 0 0

输出样例 #1

7
25

说明

#### 样例解释 对于样例 1: - 第一个操作 $op=2$,需要计算贡献的 $i$ 为 $1,5$,答案为 $7$。 - 第二个操作 $op=1$, 需要加上 $3$ 的 $i$ 为 $1,3,5$,将 $a_1,a_3,a_5$ 加上 $3$。 - 第三个操作 $op=2$, 需要计算贡献的 $i$ 为 $1,2,3,4,5$,答案为 $25$。 #### 数据范围 - 对于 $10\%$ 的数据,$1\le n,m \leq 10^3$。 - 对于 $70\%$ 的数据,每一个操作后面有一个换行。 - 对于 $100\%$ 的数据,$1\le n,m \leq 2\times10^5$,$0 \leq a_i,y,v,op'<10^7$。 - 对于操作 1 和 2,$0\leq x \leq 20$ 且 $0 \le y < 2^x$。