AT_nupc2024_g Super 累積 XOR
Description
$ N $ 個の整数からなる数列 $ A = (A_1, A_2, \dots, A_N) $ が与えられます。
以下の操作を $ K $ 回行った後の $ A $ を出力してください。
- $ i=1,2, \dots ,N $ に対して一斉に $ A_i $ を $ A_1 \oplus A_2 \oplus \dots \oplus A_i $ に置き換える。
ただし、 $ \oplus $ はビットごとの排他的論理和を表します。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ K $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $
Output Format
上述の操作を $ K $ 回行った後の $ A=(A_1,A_2,\dots,A_N) $ の各要素を、順に空白区切りで出力してください。
Explanation/Hint
### 部分点
追加の制約 $ N \le 1000 $ を満たすデータセットに正解した場合は $ 1 $ 点が与えられる。
### Sample Explanation 1
はじめ、 $ (A_1, A_2, A_3)=(1,2,3) $ です。
1 回目の操作を行うと $ (A_1, A_2, A_3)=(1,1 \oplus 2,1 \oplus 2 \oplus 3)=(1,3,0) $ となります。
2 回目の操作を行うと $ (A_1, A_2, A_3)=(1,1 \oplus 3,1 \oplus 3 \oplus 0)=(1,2,2) $ となります。
### Constraints
- $ 1 \le N \le 2 \times 10^5 $
- $ 1 \le K \le 10^{18} $
- $ 0 \le A_i < 2^{30} $
- 入力はすべて整数