{"trustable":false,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"MD","content":"现有一个长度为 n 的整数数组 a(1 \u0026le; a\u003csub\u003ei\u003c/sub\u003e \u0026le; n),且每个元素的值互不相同(a\u003csub\u003ei\u003c/sub\u003e \u0026ne; a\u003csub\u003ej\u003c/sub\u003e if i \u0026ne; j)。\n\n小明要对这个数组进行 m 次操作,操作有两种类型:\n\n1. 对给定的 pos :令 a\u003csub\u003epos\u003c/sub\u003e 的值增加 10\u003csup\u003e7\u003c/sup\u003e ;\n2. 对给定的 r,val:询问 大于等于 val 且不等于 a\u003csub\u003ei\u003c/sub\u003e (1\u0026le; i \u0026le; r) 的最小的整数值。\n\n\n\n请回答小明的每个询问(即操作2)。\n\n对每个询问,输出一行一个整数表示答案。"}},{"title":"Input","value":{"format":"MD","content":"第一行一个整数 T (1 \u0026le; T \u0026le; 10)表示测试数据个数。\n\n对于每组测试数据:\n\n第一行两个整数 n ,m (1 \u0026le; n,m \u0026le; 100000)。\n\n第二行 n 个互不相同整数,为数组 a (1 \u0026le; a\u003csub\u003ei\u003c/sub\u003e \u0026le; n)。\n\n之后 m 行:每行或者两个整数 1 x(表示操作 1),或者三个整数 2 y z(表示操作 2)。\n\n设 *last_ans* 为前一次输出的答案,且对于每组数据,*last_ans* 初始值为 0 。\n\n其中 pos\u003d*last_ans* ⊕ x,r\u003d*last_ans* ⊕ y,val\u003d*last_ans* ⊕ z。(⊕ 表示异或运算)\n\n数据保证:1 \u0026le; pos, r, val \u0026le; n ,∑ n \u0026le; 510000,∑ m \u0026le; 510000 。"}},{"title":"Output","value":{"format":"MD","content":"对于每个询问,输出一行一个整数,表示答案。 "}},{"title":"Sample Input","value":{"format":"MD","content":"\u003cpre\u003e3\n5 9\n4 3 1 2 5 \n2 1 1\n2 2 2\n2 6 7\n2 1 3\n2 6 3\n2 0 4\n1 5\n2 3 7\n2 4 3\n10 6\n1 2 4 6 3 5 9 10 7 8 \n2 7 2\n1 2\n2 0 5\n2 11 10\n1 3\n2 3 2\n10 10\n9 7 5 3 4 10 6 2 1 8 \n1 10\n2 8 9\n1 12\n2 15 15\n1 12\n2 1 3\n1 9\n1 12\n2 2 2\n1 9\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"MD","content":"\u003cpre\u003e1\n5\n2\n2\n5\n6\n1\n6\n7\n3\n11\n10\n11\n4\n8\n11\u003c/pre\u003e"}},{"title":"Hint","value":{"format":"MD","content":"对于第一组数据的 m 个操作,在进行异或处理后,其值为:\n\n2 1 1:r\u003d0⊕1\u003d1,val\u003d0⊕1\u003d1,输出答案为 1;\n\n2 2 2:r\u003d1⊕2\u003d3,val\u003d1⊕2\u003d3,输出答案为 5;\n\n2 6 7:r\u003d5⊕6\u003d3,val\u003d5⊕7\u003d2,输出答案为 2;\n\n2 1 3:r\u003d2⊕1\u003d3,val\u003d2⊕3\u003d1,输出答案为 2;\n\n2 6 3:r\u003d2⊕6\u003d4,val\u003d2⊕3\u003d1,输出答案为 5;\n\n2 0 4:r\u003d5⊕0\u003d5,val\u003d5⊕4\u003d1,输出答案为 6;\n\n1 5:pos\u003d6⊕5\u003d3;\n\n2 3 7:r\u003d6⊕3\u003d5,val\u003d6⊕7\u003d1,输出答案为 1;\n\n2 4 3:r\u003d1⊕4\u003d5,val\u003d1⊕3\u003d2,输出答案为 6。"}}]}