The Child and Set

题意翻译

给你两个整数 $n,m$,要求选若干个不大于 $m$ 的数,使得这几个数的 Lowbit 值和等于 $n$。 **【输入格式】** 两个数 $n, m$。 **【输出格式】** 第一行:选了几个数。 第二行:这几个数,用空格分开,有多解输出任意一解,无解输出 $-1$。 **样例 \#1 解释**:$\operatorname {lowbit}(4)=4,\operatorname {lowbit}(5)=1$,$4+1=5$。 **样例 \#2 解释**:$\operatorname {lowbit}(2)=2,\operatorname {lowbit}(1)=1,\operatorname {lowbit}(3)=1$,$2+1+1=4$。 由 @Hjl1777 提供翻译

题目描述

At the children's day, the child came to Picks's house, and messed his house up. Picks was angry at him. A lot of important things were lost, in particular the favorite set of Picks. Fortunately, Picks remembers something about his set $ S $ : - its elements were distinct integers from $ 1 $ to $ limit $ ; - the value of ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF437B/88e174ec7cf915d3f747f56e083fd307f02a2ea9.png) was equal to $ sum $ ; here $ lowbit(x) $ equals $ 2^{k} $ where $ k $ is the position of the first one in the binary representation of $ x $ . For example, $ lowbit(10010_{2})=10_{2},lowbit(10001_{2})=1_{2},lowbit(10000_{2})=10000_{2} $ (binary representation). Can you help Picks and find any set $ S $ , that satisfies all the above conditions?

输入输出格式

输入格式


The first line contains two integers: $ sum,limit $ $ (1<=sum,limit<=10^{5}) $ .

输出格式


In the first line print an integer $ n $ $ (1<=n<=10^{5}) $ , denoting the size of $ S $ . Then print the elements of set $ S $ in any order. If there are multiple answers, print any of them. If it's impossible to find a suitable set, print -1.

输入输出样例

输入样例 #1

5 5

输出样例 #1

2
4 5

输入样例 #2

4 3

输出样例 #2

3
2 3 1

输入样例 #3

5 1

输出样例 #3

-1

说明

In sample test 1: $ lowbit(4)=4,lowbit(5)=1,4+1=5 $ . In sample test 2: $ lowbit(1)=1,lowbit(2)=2,lowbit(3)=1,1+2+1=4 $ .