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} $ - 入力はすべて整数