题目描述
在上次脱团计划结束后,仍然有部分的成员脱团失败。于是团长大人决定执行第二次脱团计划。同样的,参加第二次脱团计划的成员按顺序站成一列,每个人仍然拥有各自的脱团指数A[i]。不过这一次团长决定观察一段时间每个人脱团指数的变化,好对每一个人的脱团方法进行设计。但是团长的数学不是很好,所以他决定让副团长来记录。团长会告诉副团长两种命令XOR和SUM,它们分别有以下含义:
XOR X Y Z 编号X到编号Y的所有成员脱团指数都异或上Z
SUM X Y 团长想要知道编号X到编号Y所有成员脱团指数的和
对于所有的SUM命令,副团长需要告诉团长结果。不过团长的命令实在是太多了,副团长只好求助于你。
数据范围:
对于30%的数据:N,M <= 10000
对于100%的数据:N,M <= 100000,0 <= A[i], Z <= 15
其中30%的数据:0 <= A[i], Z <= 1
输入格式
第1行:2个整数N,M,N表示成员人数,M表示命令条数
第2行:N个整数,每个成员的初始脱团指数A[i]
第3..M+2行:按照格式给出每一个命令
输出格式
若干行:每行一个整数,依次回答每一个SUM命令
样例输入
样例输出