Stacking Cups
시간 제한2초메모리 제한2048 MB
지름이 커지는 n개의 컵을 포개어 쌓을 때 탑 높이가 목표 h가 되는 배치 순서를 찾고, 불가능하면 impossible을 출력한다.
문제
You have a collection of cylindrical cups, where the th cup is cm tall. The cups have increasing diameters, such that cup fits inside cup if and only if . The base of each cup is cm thick (which makes the smallest cup rather useless as it is only cm tall, but you keep it for sentimental reasons).
After washing all the cups, you stack them in a tower. Each cup is placed upright (in other words, with the opening at the top) and with the centers of all the cups aligned vertically. The height of the tower is defined as the vertical distance from the lowest point on any of the cups to the highest. You would like to know in what order to place the cups such that the final height (in cm) is your favorite number. Note that all cups must be used.
For example, suppose and your favorite number is . If you place the cups of heights , , , , in that order, the tower will have a total height of , as shown in Figure J.1.

Figure J.1: Illustration of Sample Output 1.
입력
The input consists of a single line containing two integers and , where () is the number of cups and () is your favorite number.
출력
If it is possible to build a tower with height , output the heights of all the cups in the order they should be placed to achieve this. Otherwise, output impossible. If there is more than one valid ordering of cups, any one will be accepted.