位树(bit)

题目描述

Y 同学有一个长度为 2p2^p 的整数序列 a1,a2,,a2pa_1,a_2,\ldots,a_{2^p}。他用这个序列建立一棵满二叉树:叶子从左到右依次为这些数。

从叶子上一层开始,第一层父节点的值等于两个儿子的按位或;再上一层父节点的值等于两个儿子的按位异或;之后继续按位或、按位异或交替进行,直到根节点。

现在有 qq 次修改。每次修改给出 x,yx,y,表示把 axa_x 改成 yy。每次修改后,请输出整棵树根节点的值。

输入格式

第一行包含两个整数 p,qp,q

第二行包含 2p2^p 个整数 a1,a2,,a2pa_1,a_2,\ldots,a_{2^p}

接下来 qq 行,每行包含两个整数 x,yx,y,表示一次修改。

输出格式

对于每次修改,输出一行一个整数,表示修改后根节点的值。

样例

样例输入 #1

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

样例输出 #1

1
3
3
2

数据范围与约定

对于 100%100\% 的数据,保证 1p171 \le p \le 171q2×1051 \le q \le 2\times 10^50ai,y1090 \le a_i,y \le 10^91x2p1 \le x \le 2^p

测试点编号 分值 pp \le qq \le 特殊性质
121 \sim 2 1010 33 100100
343 \sim 4 55 10001000 特殊性质 A
565 \sim 6 1010 特殊性质 B
7107 \sim 10 2020 1717 10510^5
111411 \sim 14 88 2×1052\times 10^5 特殊性质 A
152015 \sim 20 3030 1717
  • 特殊性质 A:保证 p=1p=1
  • 特殊性质 B:保证 q10q \le 10