B. Ребенок и множество
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

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

К счастью, Пикс помнит кое-что о своем множестве S:

  • его элементами были различные целые числа от 1 до limit;
  • значение равнялось sum; функция lowbit(x) равна 2k, где k обозначает позицию первой единицы в двоичном представлении числа x. Например, lowbit(100102) = 102, lowbit(100012) = 12, lowbit(100002) = 100002 (числа записаны в двоичном представлении).

Помогите Пиксу. Найдите любое множество S, удовлетворяющее всем вышеперечисленным условиям?

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

В первой строке записано два целых числа: sum, limit (1 ≤ sum, limit ≤ 105).

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

В первой строке выведите целое число n (1 ≤ n ≤ 105), обозначающее размер S. Затем выведите элементы множества S в любом порядке. Если есть несколько правильных ответов, выведите любой.

Если подходящего множества не существует, выведите -1.

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

В примере 1: lowbit(4) = 4, lowbit(5) = 1, 4 + 1 = 5.

В примере 2: lowbit(1) = 1, lowbit(2) = 2, lowbit(3) = 1, 1 + 2 + 1 = 4.