题目描述

有一个长度为$n$的整数序列$a$,你需要编写一个程序支持以下两种操作:

  1. OKYwW9.jpg操作,给出两个整数$x,y$表示将$a_x$修改为$y$。
  2. 操作,给出一个整数$p$,你需要输出$\sum_{i=1}^n (p \ xor \ a_i)$

其中$xor$为二进制运算异或操作。


输入格式

第一行两个整数$n$和$q$,表示序列的长度和操作的个数。
第二行共$n$个整数表示序列$a$。
接下来$q$行。
每一行的第一个整数表示操作类型。
若$op=1$,则表示此次操作为OKYwW9.jpg操作,后跟两个整数$x$和$y$。
若$op=2$,则表示此次操作为操作,后跟整数$p$。


输出格式

对于每一个操作,输出一行表示该次操作的答案。


样例数据

输入

样例一
3 3
1 2 3
2 1
1 1 4
2 2

样例二
5 5
1 2 3 4 7
2 2
1 1 5
2 1
1 3 6
2 9

输出

样例一
5
7

样例二
15
20
65


备注

$1\leq n,q \leq 10^5$

$1\leq x \leq n$

$0\leq a_i,y,p < 2^{20}$


操作

评测记录

优秀代码

信息

时间限制: 1s
内存限制: 256MB
评测模式: Normal

题解