atcoder#ARC137D. [ARC137D] Prefix XORs

[ARC137D] Prefix XORs

Score : 700700 points

Problem Statement

You are given an integer sequence of length NN: A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N), and an integer MM.

For each k=1,2,,Mk=1,2,\cdots,M, find the value of ANA_N after doing the operation below kk times.

  • For every ii (1iN1 \leq i \leq N), simultaneously, replace the value of AiA_i with A1A2AiA_1 \oplus A_2 \oplus \cdots \oplus A_i.

Here, \oplus denotes bitwise XOR\mathrm{XOR}.

What is bitwise $\mathrm{XOR}$?

The bitwise $\mathrm{XOR}$ of non-negative integers $A$ and $B$, $A \oplus B$, is defined as follows:

  • When $A \oplus B$ is written in base two, the digit in the $2^k$'s place ($k \geq 0$) is $1$ if exactly one of $A$ and $B$ is $1$, and $0$ otherwise.
For example, we have 3 \oplus 5 = 6 (in base two: 011 \oplus 101 = 110).
Generally, the bitwise \mathrm{XOR} of k integers p_1, p_2, p_3, \dots, p_k is defined as (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k). We can prove that this value does not depend on the order of p_1, p_2, p_3, \dots p_k.

Constraints

  • 1N1061 \leq N \leq 10^6
  • 1M1061 \leq M \leq 10^6
  • 0Ai<2300 \leq A_i < 2^{30}
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN MM

A1A_1 A2A_2 \cdots ANA_N

Output

Print the answers for respective values of kk, separated by spaces.

3 2
2 1 3
0 1

Each operation changes AA as follows.

  • Initially: A=(2,1,3)A=(2,1,3).
  • After the first operation: A=(2,3,0)A=(2,3,0).
  • After the second operation: A=(2,1,1)A=(2,1,1).
10 12
721939838 337089195 171851101 1069204754 348295925 77134863 839878205 89360649 838712948 918594427
716176219 480674244 678890528 642764255 259091950 663009497 942498522 584528336 364872846 145822575 392655861 844652404