Impressive Integers
문제
Recently, Alice and her sister Clara learned about adorable numbers: A positive integer is called adorable if there exist some integers and so that an equilateral triangle with side length can be tiled with smaller equilateral triangles, each having a side length of either or . For instance, is an adorable number as shown in Figure I.1a below.
| (a) Visualization of the second sample output. | (b) Coordinate system used for the output. |
|---|
They decided to see who can come up with more adorable numbers, but it turns out that checking all the numbers manually is too cumbersome. Therefore, Alice asked you to help her check whether the numbers Clara listed are adorable or not. As she wants to be sure that every number claimed to be adorable really is adorable, she asked you to write a program that, given an integer , determines if it is adorable and if so, outputs a valid tiling as shown in Figure I.1a.
입력
The input consists of:
- A single positive integer ().
출력
If the given integer is adorable, output a valid tiling using the following format:
- Three integers (), such that an equilateral triangle with side length can be tiled with equilateral triangles with side lengths and .
- lines, each describing one of the triangles and consisting of:
- one of
AandB, specifying if the side length of the triangle is or ; - two integers , giving the leftmost corner of the triangle;
- one of
UandD, specifying whether the triangle is pointing upwards or downwards.
- one of
Otherwise, if is not adorable, output impossible.
If your tiling consists of triangles that all have the same size, you may either use A or B exclusively for all of your triangles, or set and arbitrarily label each triangle with A or B.
It can be shown that for every adorable number in the input range it is possible to construct a tiling according to the above set of rules. You may output any valid tiling.
예제
예제 1
2
impossible
예제 2
6
1 2 3 B 0 1 U A 0 0 U A 0 1 D A 1 0 U A 1 1 D A 2 0 U