Олимпиадный тренинг

Задача . A. У Ану есть функция


Ану придумала свою собственную функцию \(f\): \(f(x, y) = (x | y) - y\), где \(|\) обозначает операцию побитового ИЛИ. К примеру, \(f(11, 6) = (11|6) - 6 = 15 - 6 = 9\). Можно показать, что для любых неотрицательных чисел \(x\) и \(y\) значение \(f(x, y)\) также неотрицательное.

Она хотела бы исследовать данную функцию, и придумала несколько задач для себя. К сожалению, она не может решить все из них, и ей нужна ваша помощь. Вот одна из этих задач.

Значение массива \([a_1, a_2, \dots, a_n]\) определяется как \(f(f(\dots f(f(a_1, a_2), a_3), \dots a_{n-1}), a_n)\) (для примеров обратитесь к примечаниям). Вам дан массив из не обязательно различных чисел. Как нужно переставить местами его элементы, чтобы его значение стало максимальным возможным?

Входные данные

Первая строка содержит одно целое число \(n\) (\(1 \le n \le 10^5\))  — длина массива.

Вторая строка содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(0 \le a_i \le 10^9\))  — элементы массива. Не гарантируется, что элементы массива различны.

Выходные данные

Выведите \(n\) чисел  — перестановку массива с максимальным значением. Если существует несколько решений, выведите любое из них.

Примечание

В первом тестовом случае, значение массива \([11, 6, 4, 0]\) равно \(f(f(f(11, 6), 4), 0) = f(f(9, 4), 0) = f(9, 0) = 9\).

\([11, 4, 0, 6]\) также является верным ответом.


Примеры
Входные данныеВыходные данные
1 4 2
10 4 10 15
1 2
4 3
0 0 1 2
2 10 4
5 4 1 5 4 3 7 1 2 5
4 6
2 1
10 8
3 5
5 4 0 5 3 3 9 0 2 5

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя