幻梦 | Dream with Dynamic

题目背景

“那以后见到她,会不会笑出来啊?” “哈,一时半会见不到她的。” 小时候说要一起去看尘寰间的人间烟火,有人欣然接受,长大了说遗忘过去,那人也没有反驳。 其实吧,她们彼此明白,小时候在意的不是什么人间烟火,而是一起。 黑夜里,没有早晨的绯红,也褪去了天边的白光,留下的是她心头的散不去的灰暗。没有星光璀璨,没有满天繁星,她不在乎。她在乎的是那个人心中闪烁的星辰大海。 ---- 察觉所谓规则秘密,不过取悦于创世神明,早已知晓光明同黑暗般腥风血雨

题目描述

有一个长度为 $n$ 的序列,开始时第 $i$ 位为 $a_i$。你需要完成 $q$ 次操作: - `A l r x`,对于所有的 $l\le i\le r$,令 $a_i\gets a_i+x$。 - `P l r`,对于所有的 $l\le i\le r$,令 $a_i\gets\operatorname{popcount}(a_i)$。 - `J p`,查询 $a_p$ 的值。 注:$\operatorname{popcount}(x)$ 为 $x$ 的二进制表示中 $1$ 的个数。

输入输出格式

输入格式


第一行两个正整数 $n,q$。 第二行 $n$ 个正整数 $a_1, a_2, \ldots, a_n$。 接下来 $q$ 行,每行描述一个操作,形如以下三种中的一种: - `A l r x` - `P l r` - `J p`

输出格式


对于每个 `J` 操作,输出一行,一个整数,表示答案。

输入输出样例

输入样例 #1

5 5
1 2 3 4 5
J 2
A 2 4 3
J 4
P 1 4
J 3

输出样例 #1

2
7
2

说明

**【样例解释】** - 开始时,$a = [1, 2, 3, 4, 5]$。 - 对询问 `J 2`,应回答 $a_2 = 2$。 - 操作 `A 2 4 3` 后,$a = [1, 5, 6, 7, 5]$。 - 对询问 `J 4`,应回答 $a_4 = 7$。 - 操作 `P 1 4` 后,$a = [1, 2, 2, 3, 5]$。 - 对询问 `J 3`,应回答 $a_3 = 2$。 --- **【数据范围】** **本题采用捆绑测试。** | 子任务编号 | 特殊限制 | 分值 | | :----------: | :----------: | :----------: | | 1 |$n,q\le 2000$| 3 | | 2 |没有 `P` 操作| 7 | | 3 |没有 `A` 操作| 15 | | 4 |数据随机生成| 15 | | 5 |无特殊限制| 60 | 对于全部数据,保证 $1\leq n\leq 3\times 10^5$,$1 \le q \le 10^6$,$1 \le l \le r \le n$,$1 \le p \le n$,$1\le a_i, x\le 10^9$。 子任务 4 的随机方式: - 取 $n=3\times 10^5$,$q=10^6$; - $a_i$ 从 $[1,10^9]$ 均匀随机选取; - 对于每一个操作: - 从 3 种操作中均匀随机选取一个; - 如果是 `A` 操作,均匀随机从 $[1,n]$ 中选取 2 个整数,将较小的作为区间左端点,较大的作为区间右端点,再从 $[1,10^9]$ 中选取一个整数作为参数 `x`; - 如果是 `P` 操作,均匀随机从 $[1,n]$ 中选取 2 个整数,将较小的作为区间左端点,较大的作为区间右端点; - 如果是 `J` 操作,均匀随机从 $[1,n]$ 中选取一个整数作为参数 `p`。 --- **【提示】** 本题最大 I/O 量达到 30 MiB,请注意 I/O 效率。