Bad Treap
A treap, also known as Cartesian tree, is a data structure that stores a set of keys in a binary search tree.
Each node of this tree is characterized by a pair .
The values of the nodes are the stored keys. They obey "the binary search tree rule": all values in the left subtree of the node are smaller than its value, and all values in the right subtree of the node are larger than its value.
The values of the nodes obey "the heap rule": value of a node is less than or equal to the value of its parent.
The value for each created node is usually selected randomly according to some distribution. This results in nice average time complexity of many operations.
Since this data structure unites some properties of a binary search tree and a heap, its name is a "portmanteau" term made of two words: TRee + hEAP = TREAP.
Benjamin decided that nondeterminism in value selection procedure is bad, as it makes execution time differ from one run to another. He decided to calculate for each node deterministically based on its . He selected the rule . He is especially glad that distinct integer 's will always have distinct 's.
Barbara understands that while the nondeterministic treap shows its worst performance when provided "bad" random sequence, the deterministic treap shows its worst performance when provided "bad" set of keys. She wants to explain it to Benjamin by showing him integer keys, which, being stored in his data structure, will form a treap of height — the "most unbalanced" possible situation.
Help Barbara by providing such keys. All these keys should fit into the -bit signed integer type.
Input
Consists of a single integer .
Output
Print lines containing distinct integer keys. All keys must be between and inclusive. A treap built on these keys with the rule must have height .