D. Генерация наборов
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам задан набор Y из n различных целых положительных чисел y1, y2, ..., yn.

Назовём набор X из n различных целых положительных чисел x1, x2, ..., xn генератором для Y, если из набора X можно получить набор Y, применяя к элементам набора X следующие две операции:

  1. Умножить произвольное число xi на два, то есть заменить xi на xi.
  2. Умножить произвольное число xi на два и прибавить единицу, то есть заменить xi на xi + 1.

Обратите внимание, не требуется, чтобы все числа в наборе X были различны после выполнения каждой операции.

Наборы в данной задаче сравниваются как множества чисел. Другими словами, два набора различных чисел X и Y совпадают, если, выписав оба набора в отсортированном порядке, мы получим одинаковые массивы.

Заметьте, что любой набор чисел (или его перестановка) сам является одним из своих генераторов.

По заданному набору Y найдите его генератор, в котором максимальное число минимально.

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

В первой строке входных данных записано число n (1 ≤ n ≤ 50 000) — количество чисел в наборе Y.

Во второй строке записаны n чисел y1, ..., yn (1 ≤ yi ≤ 109). Гарантируется, что все числа в наборе различны.

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

Выведите n чисел — генератор для заданного набора Y, в котором максимальное число как можно меньше. Если подходящих наборов несколько, разрешается вывести любой из них.

Примеры
Входные данные
5
1 2 3 4 5
Выходные данные
4 5 2 3 1 
Входные данные
6
15 14 3 13 1 12
Выходные данные
12 13 14 7 3 1 
Входные данные
6
9 7 13 17 5 11
Выходные данные
4 5 2 6 3 1