C. Степное разбиение
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Можно показать, что любое натуральное число x единственным образом представимо в виде x = 1 + 2 + 4 + ... + 2k - 1 + r, где k и r — целые, k ≥ 0, 0 < r ≤ 2k. Такое представление будем называть степным разбиением x на слагаемые.

Например, степные разбиения чисел 12, 17, 7 и 1 выглядят так:

12 = 1 + 2 + 4 + 5,

17 = 1 + 2 + 4 + 8 + 2,

7 = 1 + 2 + 4,

1 = 1.

Алиса взяла последовательность натуральных чисел (элементы в которой могли повторяться), каждый элемент последовательности заменила на последовательность из всех слагаемых его степного разбиения, расположила все получившиеся числа в неубывающем порядке и отдала Борису. Теперь Борису интересно, сколько элементов могло быть в исходной последовательности Алисы. Найдите все возможные варианты!

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

Первая строка содержит единственное целое число n (1 ≤ n ≤ 105) — количество чисел, которые Алиса отдала Борису.

Вторая строка содержит n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 1012; a1 ≤ a2 ≤ ... ≤ an) — числа, отданные Алисой.

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

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

Если таких значений m не существует, выведите единственное число -1.

Примеры
Входные данные
8
1 1 2 2 3 4 5 8
Выходные данные
2 
Входные данные
6
1 1 1 2 2 2
Выходные данные
2 3 
Входные данные
5
1 2 4 4 4
Выходные данные
-1
Примечание

В первом примере Алиса могла получить такую последовательность чисел из последовательности [6, 20].

Во втором примере последовательностью Алисы могла быть как [4, 5], так и [3, 3, 3].