Codeforces div.2 B. The Child and Set

Source: Internet
Author: User

The questions are as follows:

B. The Child and Settime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

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 the particle the favorite set of Picks.

Fortunately, Picks remembers something about his setS:

Its elements were distinct integers from 1 Limit; The value of was equal Sum; Here Lowbit( X) Ipvs2 KWhereKIs the position of the first one in the binary representationX. For example,Lowbit(100102 )? =? 102 ,?Lowbit(100012 )? =? 12 ,?Lowbit(100002 )? =? 100002 (binary representation ).

Can you help Picks and find any setS, That satisfies all the above conditions?

Input

The first line contains two integers:Sum,?Limit(1? ≤?Sum,?Limit? ≤? 105 ).

Output

In the first line print an integerN(1? ≤?N? ≤? 105), denoting the sizeS. Then print the elements of setSIn any order. If there are multiple answers, print any of them.

If it's impossible to find a suitable set, print-1.

Sample test (s) Input
5 5
Output
24 5
Input
4 3
Output
32 3 1
Input
5 1
Output
-1

This problem is used to find the low position of the binary system (truncation from the first position of 1). It is actually a bitwise operation. I am not familiar with bitwise operations... Therefore, the bitwise operation is deprecated, And I &-I is used to calculate the binary low position, and I & 1 is used to shift left I <1, right I> 1, and then enumerated from limit, if the value is smaller than sum, add it to the answer.

Your code is too ugly. paste the beautiful code of others:



Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.