#HJ1107. 位运算序列

位运算序列

Ysgg\text{Ysgg} 得到了一个长度为 2n2^n 的非负整数序列 aa。

他定义了一种特殊的合并方式。

首先,将序列中相邻的两个数进行按位或(OR)运算,得到一个长度减半的新序列;然后,将新序列中相邻的两个数进行按位异或(XOR)运算,再得到一个长度减半的新序列。

之后继续交替进行这两种运算:

  • 第 11 次合并使用按位或(OR);
  • 第 22 次合并使用按位异或(XOR);
  • 第 33 次合并再次使用按位或(OR);
  • 第 44 次合并再次使用按位异或(XOR);
  • 以此类推。

经过恰好 nn 次合并后,整个序列最终只剩下一个整数,将这个整数记为 vv。

现在,Ysgg\text{Ysgg} 将对序列进行 mm 次修改。第 ii 次修改会给出两个整数 pip_i 和 bib_i,表示将当前序列中的 apia_{p_i} 修改为 bib_i。

每次修改结束后,请你求出当前序列按照上述规则合并后得到的整数 vv。

输入

第一行包含两个整数 nn 和 mm(1≤n≤171 \le n \le 17,1≤m≤1051 \le m \le 10^5),分别表示序列长度的指数以及修改次数。序列的实际长度为 2n2^n。

第二行包含 2n2^n 个整数 a1,a2,…,a2na_1,a_2,\ldots,a_{2^n}(0≤ai<2300 \le a_i < 2^{30}),表示初始序列。

接下来 mm 行,第 ii 行包含两个整数 pip_i 和 bib_i(1≤pi≤2n1 \le p_i \le 2^n,0≤bi<2300 \le b_i < 2^{30}),表示第 ii 次修改将 apia_{p_i} 改为 bib_i。

输出

对于每次修改,输出一行一个整数,表示修改完成后当前序列最终合并得到的整数 vv。

样例

Input1

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

Output1

1
3
3
3

说明

初始序列为 [1,6,3,5][1,6,3,5]。

由于 n=2n=2,每次需要进行两层合并:第一层使用按位或,第二层使用按位异或。

第一次修改后,序列变为 [4,6,3,5][4,6,3,5]。

第一层合并得到:

  • 4OR⁡6=64\operatorname{OR}6=6;
  • 3OR⁡5=73\operatorname{OR}5=7。

第二层合并得到:

6XOR⁡7=1.6\operatorname{XOR}7=1.

因此第一次修改后的答案为 11。

数据范围

对于所有测试数据,保证:

  • 1≤n≤171 \le n \le 17;
  • 1≤m≤1051 \le m \le 10^5;
  • 0≤ai,bi<2300 \le a_i,b_i < 2^{30};
  • 1≤pi≤2n1 \le p_i \le 2^n。

本题共有 2020 个测试点,每个测试点 55 分。

特殊性质:

  • 性质 A:m=1m=1;
  • 性质 B:n=1n=1;
  • 性质 C:所有修改操作中的 pip_i 均相同;
  • 性质 D:所有 aia_i 和 bib_i 均属于集合 {0,1}\{0,1\}。
测试点编号 nn mm 特殊性质
11 ≤2\le 2 ≤5\le 5 无
22 ≤4\le 4 ≤20\le 20
3∼43\sim4 ≤8\le 8 ≤100\le 100
5∼65\sim6 ≤10\le 10 ≤1000\le 1000
77 ≤17\le 17 11 A
88 11 ≤105\le 10^5 B
99 ≤17\le 17 C
1010 D
11∼1211\sim12 ≤12\le 12 ≤104\le 10^4 无
13∼1413\sim14 ≤15\le 15 ≤5×104\le 5\times 10^4
15∼2015\sim20 ≤17\le 17 ≤105\le 10^5

统计

相关

在下列比赛中:

HTCSP-S模拟1