异或
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个长度为n初始全为0的数列ai,下标从1开始。定义操作模k异或v为对所有满足 的下标i,将异或上整数v(即令)。

给出q次操作,每次操作之后输出序列的异或和,并且在操作结束之后输出整个序列。

序列的异或和为 

输入描述:

第一行两个整数n,q。

接下来q行,每行两个整数ki,vi。




输出描述:

输出共q+1行,其中前q行每行一个整数,为每次操作结束后的序列的异或和。

最后一行为操作结束后的序列。
示例1

输入

复制
10 3
1 1
2 2
3 4

输出

复制
0
2
6
1 3 5 3 1 7 1 3 5 3

备注:

等价于i mod k = 0