A9532. The Child and Set
编程题
普及/提高-
知识点
题目描述
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  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?
Fortunately, Picks remembers something about his set $S$ :
- its elements were distinct integers from $1$ to $limit$ ;
- the value of  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.
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$ .
In sample test 2: $lowbit(1)=1,lowbit(2)=2,lowbit(3)=1,1+2+1=4$ .