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?

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.

提交代码