#P1173. 小 F 的数组

小 F 的数组

题目背景

小 F 正在研究数组的修改与计算。

题目描述

小 F 现在定义了一个函数:

$$f(x)=\begin{cases}f(x+10)&x<114514\\x-9&x\geq 114514\end{cases} $$

小 F 现在给出了数组,希望你帮他写出一份代码,要求解决以下操作:

  1. 输入格式为:1 x y,表示将数组的第 xx变成 yy
  2. 输入格式为:2 x y,表示将数组的第 xx加上 yy
  3. 输入格式为:3,表示输出 i=1nf(ai)\sum^{n}_{i=1}f(a_i),其中 aia_i 表示这个数组的第 ii 项。

为了防止大量输出导致超时,你需要给出所有答案的异或和。

输入格式

第一行两个整数 n,mn,m,表示数组的大小和操作次数。

第二行给出 nn 个正整数,表示初始时的数组。

接下来的 mm 行,每行表示一种操作。

输出格式

输出一行一个正整数,表示所有操作三答案的异或和。

样例输入输出

5 6
1 2 3 4 5
1 3 4
2 4 3
3
1 2 9
2 1 7
3
250

说明/提示

【数据范围】

$$\def\or{\operatorname{or}} %\def\arrayscretch{1.5} \def\arraystretch{1.5} \begin{array}{|c|c|c|}\hline \textbf{Subtask}&\texttt{特殊限制}&\textbf{Points}\cr\hline \sf1&n,m=10&5 \operatorname{pts}\cr\hline \sf2&n,m=100&10 \operatorname{pts}\cr\hline \sf3&n,m=10^3&15 \operatorname{pts}\cr\hline \sf4&n,m=10^4&15 \operatorname{pts}\cr\hline \sf5&n,m=10^5&20 \operatorname{pts}\cr\hline \sf6&/&35 \operatorname{pts}\cr\hline \end{array} $$

opop 表示操作种类。

对于 100%100\% 的数据,2n,m1062 \leq n,m \leq 10^6op{1,2,3}op \in \{1,2,3\}1xn1 \leq x \leq n1ai,y1091 \leq a_i,y \leq 10^9

保证任意时刻 1ai10121 \leq a_i \leq 10^{12}


【样例解释】

两次的答案为 572544,572538572544,572538,所以最终答案是 250250