编程题
### 问题描述
肖恩是一名冒险家,他听说在一座神秘的迷宫中隐藏着巨大的宝藏。迷宫中有一个特殊的房间,房间里有一行数字序列 $A$ ,被称为"迷失之数",传说有着神秘的力量。
据传言,只有将这些数字重新排列,才能找到通往宝藏的路径。肖恩发现,通过重排这个数字序列,使得重排后的序列的前缀或和数组 $B$ 的字典序最大,就能够触发隐藏在迷宫深处的传送门,进入宝藏所在的禁地。
肖恩希望能够成功解开这个谜题,以获取宝藏的荣耀和财富。他需要利用自己的智慧和洞察力,找到最佳的数字排列方式。现在,你能帮助肖恩找到正确的数字排列,开启通往宝藏的道路吗?
前缀或和: $B[i] \hspace{1mm} = \hspace{1mm} a[1] \hspace{1mm} or \hspace{1mm} a[2] \hspace{1mm} or \hspace{1mm} a[3] \hspace{1mm} or \hspace{1mm} ... \hspace{1mm} or \hspace{1mm} a[i-1] \hspace{1mm} or \hspace{1mm} a[i]$ 称 $B[i]$ 为 $A$ 的前缀 $1$ 到 $i$ 的前缀或和。
### 输入描述
第一行输入一个 $n$ 表示数字序列 $A$ 的长度。
第二行输入 $n$ 个数字,第 $i$ 个数字 $A[i]$ 表示序列的第 $i$ 个数字。
数据保证 $1 \leq n \leq 10^6,1 \leq A[i] \leq 10^9$ 。
### 输出描述
输出 $n$ 个数字,表示前缀或和字典序最大的排列。
### 样例输入
```
5
1 2 3 4 5
```
### 样例输出
```
5 2 1 3 4
```