#arc0212. [arc021_2]Your Numbers are XORed...

[arc021_2]Your Numbers are XORed...

问题文

小学 NN 年级的妹妹刚刚学习了关于 排他逻辑和 的知识。

排他逻辑和是指,对于非负整数 PPQQ,当将它们的排他逻辑和记作 RR 时,定义如下:

  • 当将 RR 的二进制表示中第 2k2^k 位的值记作 rr,将 PP 的二进制表示中第 2k2^k 位的值记作 pp,将 QQ 的二进制表示中第 2k2^k 位的值记作 qq 时,若 pp=qq,则 rr00;若 ppqq,则 rr11

具体而言,若将 3355 的排他逻辑和记作 RR,则 33 的二进制表示为 01101155 的二进制表示为 101101,因此 RR 的二进制表示为 110110,即 RR 的值为 66

妹妹了解到排他逻辑和的奇妙之处后,高兴地将周围的非负整数随机替换为它们的排他逻辑和的值。

然而,兄长要提交的文件也被替换了!

由于兄长不在家,妹妹决定在他回来之前恢复原始序列。以下是知道的线索:

  • 文件上写着 LL 个非负整数 A1A_1A2A_2,…,ALA_L。这些数字不再在文件上。妹妹的目标是知道这些数字。
  • 文件上写着 LL 个非负整数 B1B_1B2B_2,…,BLB_L。这些数字可以从文件中得到。

B1B_1B2B_2,…,BLB_L 是由以下定义得到的数字:

  • 对于满足 1iL11 ≦ i ≦ L-1 的整数 iiBiB_i 的值等于 AiA_iAi+1A_{i+1} 的排他逻辑和。
  • BLB_L 的值等于 ALA_LA1A_1 的排他逻辑和。

非常遗憾,有时可能找不到对应的原始数列,或者有多个可能的解。我们该怎么办!

困扰的妹妹想起了今天占卜的幸运物品是字典。字典、辞书、字典顺序...

最终,她决定添加以下规则:

  • 如果找不到对应的原始数列,则无法办法,输出 -1
  • 如果存在多个对应的原始数列,则输出字典顺序最小的数列。

现在,请你代替妹妹编写程序,输出满足上述条件的数列。


输入

输入从标准输入中提供,具有以下格式。

LL B1B_1 B2B_2 : BLB_L

  • 11 行为表示文件中数字个数的整数 LL (2L105)(2 ≦ L ≦ 10^5)
  • 22 行到第 LL 行给出了文件中保留的非负整数。其中第 ii 行给出整数 BiB_i (0Bi231)(0 ≦ B_i < 2^{31})

输出

如果存在满足条件的原始非负整数序列 A1A_1A2A_2,…,ALA_L,则输出其中字典顺序最小的序列,一共 LL 行。其中第 ii 行输出整数 AiA_i。若不存在满足条件的数列,则输出 -1。输出末尾需包含换行。


输入示例1


2
1
1

输出示例1


0
1

可见 A1A_1A2A_2 的排他逻辑和为 11。满足这样条件的数列有多种,但是满足 A1=0A_1=0A2=1A_2=1 的数列是字典顺序最小的。


输入示例2


3
1
4
1

输出示例2


-1

不存在满足条件的原始数列。一定是在某个地方操作出错了。


输入示例3


3
1
2
3

输出示例3


0
1
3