時間制限 : sec, メモリ制限 : KB
English / Japanese  

Enumeration of Subsets I

$0$から$n-1$までの$n$個の整数を要素とする集合$U$の全ての部分集合を列挙してください。ただし、$0$から$n-1$をそれぞれ2進数の00...0001、00...0010、00...0100、...、10...0000とし、存在する要素のビットごとの論理和を取ったものをその部分集合の整数値とします。

Input

入力は以下の形式で与えられます。

$n$

Output

部分集合をそれらの整数値の昇順で出力してください。1つの部分集合は以下の形式で出力してください。

$d$: $e_0$ $e_1$ ... 

整数値$d$の後にコロン:、続けて部分集合に含まれる要素$e_i$を昇順で空白付きで出力してください。

Constraints

  • $1 \leq n \leq 18$

Sample Input 1

4

Sample Output 1

0:
1: 0
2: 1
3: 0 1
4: 2
5: 0 2
6: 1 2
7: 0 1 2
8: 3
9: 0 3
10: 1 3
11: 0 1 3
12: 2 3
13: 0 2 3
14: 1 2 3
15: 0 1 2 3

部分集合が空の場合は、0:の後には空白を入れずに改行することに注意してください。