2024年东华大学与昭通学院联合程序设计竞赛

G. 主=6

单点时限: 1.0 sec

内存限制: 512 MB

众所周知,Jumping 是数学の神,传说中祂提出了许多重要的恒等式,你是祂的一个信徒。

Jumping 第三恒等式(上帝公式):
$$
\text{主} = 6
$$

从 Jumping 第三恒等式中可以看出, $6$ 是非常重要的数字。而 C, C++, Java, Python 语言中按位异或运算符是 ^ ,它在美式键盘的数字 6 的上面,因此你认为异或更加重要。

据古籍记载,Jumping 有一个包含 $n$ 个整数的数组 $a$ ,经过前缀异或和后,得到另一个数组 $b$ ,即:
$$
b_i = \begin{cases}
a_1 & ,i=1 \
b_{i-1} \oplus a_i & ,\mathrm{otherwise}
\end{cases}
$$
其中 $\oplus$ 表示 按位异或 操作。

但是现在原数组 $a$ 找不到了,只有新数组 $b$ 了,作为信徒,你能帮帮 Jumping 吗?

异或真值表:

$A$ $B$ $A\oplus B$
0 0 0
0 1 1
1 0 1
1 1 0

按位异或是一种位运算操作,它会在二进制下按位比较,只有当两个对应位不同时结果才为 $1$ 。

举例:
$$
\begin{aligned}
5 &= (101)_2 \
6 &= (110)_2 \
5 \oplus 6 &= (101)_2 \oplus (110)_2 = (011)_2 = 3
\end{aligned}
$$

输入格式

第一行包含一个整数 $n(1 \leq n \leq 10^5)$ 。

接下来 $n$ 行,每行包含一个整数, $b_i(0 \leq b[i] < 2^{31})$ ​。

C/C++/Java 中,题目保证所有数字都可以用 int 类型存储。

输出格式

输出 $n$ 行,每行包含一个整数,表示 $a_i$ 。

样例

Input
2
5
3
Output
5
6