Half
Danilo, a generous person, starts his day with a certain number of apples. Whenever he encounters a friend, he shares his apples by giving away half of them.
However, Danilo's generosity varies among his friends. To some, he gives exactly half an apple, while to others, he gives half of his total apples. Due to his limited ability to split apples into more than two parts, if he has an odd number of apples when meeting a friend, he must give away half an apple.
In the morning, Danilo begins with n apples and throughout the day, he meets k friends. Your task is to determine the possible number of apples he could have left by the evening.
Input
The input consists of two integers: n — the initial number of apples Danilo has, and k — the number of friends he meets during the day (1 ≤ n ≤ 1000, 1 ≤ k ≤ 1000).
Output
The output should begin with the integer m — the number of possible outcomes for the number of apples Danilo could have by evening. The following line should list m real numbers in ascending order, representing the possible outcomes.