CF1742G Orray

Description

You are given an array $ a $ consisting of $ n $ nonnegative integers. Let's define the prefix OR array $ b $ as the array $ b_i = a_1~\mathsf{OR}~a_2~\mathsf{OR}~\dots~\mathsf{OR}~a_i $ , where $ \mathsf{OR} $ represents the [bitwise OR operation](https://en.wikipedia.org/wiki/Bitwise_operation#OR). In other words, the array $ b $ is formed by computing the $ \mathsf{OR} $ of every prefix of $ a $ . You are asked to rearrange the elements of the array $ a $ in such a way that its prefix OR array is lexicographically maximum. An array $ x $ is lexicographically greater than an array $ y $ if in the first position where $ x $ and $ y $ differ, $ x_i > y_i $ .

Input Format

The first line of the input contains a single integer $ t $ ( $ 1 \le t \le 100 $ ) — the number of test cases. The description of test cases follows. The first line of each test case contains a single integer $ n $ ( $ 1 \leq n \leq 2 \cdot 10^5 $ ) — the length of the array $ a $ . The second line of each test case contains $ n $ nonnegative integers $ a_1, \ldots, a_n $ ( $ 0 \leq a_i \leq 10^9 $ ). It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ .

Output Format

For each test case print $ n $ integers — any rearrangement of the array $ a $ that obtains the lexicographically maximum prefix OR array.