Codeforces Round 250 (Div. 2)
B
The Child and Set
Codeforces
1500
原题
← AC →
翻译中…

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 image 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?

翻译中…

Input

翻译中…

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

翻译中…

Output

翻译中…

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.

翻译中…

Note

翻译中…

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

翻译中…

样例

Input #1
5 5
Output #1
2
4 5
InputCopy OutputCopy
Input #2
4 3
Output #2
3
2 3 1
InputCopy OutputCopy
Input #3
5 1
Output #3
-1
InputCopy OutputCopy
题目信息
题号
437B
时间限制
1 s
内存限制
256 MB
标签
位运算
贪心
模拟
排序

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。