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 $ .