#P15714. 零交叠配对

零交叠配对

题目描述

数据馆管理员 Mira 正在整理一批权限标签。每个标签都是一个非负整数,整数的二进制位表示它拥有的权限集合。

这批标签共有 nn 个,按当前顺序记为

a1,a2,,an.a_1,a_2,\ldots,a_n.

所有标签互不相同。并且这批标签还有一个很强的封闭性质:对于任意非负整数 xx,如果存在某个标签 aia_i,使得 xx 的所有二进制位都包含在 aia_i 中,即

ai&x=x,a_i\mathbin{\&}x=x,

那么 xx 本身也一定在这批标签中出现过。

Mira 想给每个位置重新分配一个标签。她必须使用原来的全部标签,每个标签恰好使用一次。重新分配后的序列记为

b1,b2,,bn.b_1,b_2,\ldots,b_n.

为了避免权限冲突,她要求每个位置原标签和新标签没有任何公共的二进制位:

bi&ai=0(1in).b_i\mathbin{\&}a_i=0\quad(1\le i\le n).

请你构造任意一种满足条件的重排方案。题目保证一定存在解。

输入格式

第一行包含一个整数 nn

接下来 nn 行,每行包含一个整数 aia_i,表示原序列中的第 ii 个标签。

输出格式

输出 nn 行。第 ii 行输出整数 bib_i

输出的 b1,b2,,bnb_1,b_2,\ldots,b_n 必须是 a1,a2,,ana_1,a_2,\ldots,a_n 的一个排列,并满足

bi&ai=0.b_i\mathbin{\&}a_i=0.

如果存在多种合法方案,输出任意一种即可。

数据范围

  • 1n<2181\le n<2^{18}
  • 0ai<2600\le a_i<2^{60}
  • 所有 aia_i 两两不同;
  • 输入序列满足题目中的封闭性质。

样例 1

输入

6
0
1
4
5
2
6

输出

4
6
0
2
5
1