AT_agc012_c [AGC012C] Tautonym Puzzle
Description
[problemUrl]: https://atcoder.jp/contests/agc012/tasks/agc012_c
文字列 $ x $ が以下の条件を満たすとき、$ x $ を *良い文字列* と呼びます。
- 条件:$ x $ はある長さ $ 1 $ 以上の文字列 $ y $ を $ 2 $ 回繰り返した文字列 $ yy $ で表すことができる。
例えば `aa`,`bubobubo` などは良い文字列ですが、空文字列、`a`,`abcabcabc`,`abba` などは良い文字列ではありません。
ワシとフクロウが良い文字列に関するパズルを作りました。 以下の条件を満たす文字列 $ s $ をどれか $ 1 $ つ求めてください。この問題の制約下で、そのような文字列が必ず存在することが証明できます。
- $ 1\ ≦\ |s|\ ≦\ 200 $
- $ s $ は $ 1 $ から $ 100 $ までの整数で表される $ 100 $ 種類の文字のみからなる。
- $ s $ の $ 2^{|s|} $ 個ある部分列のうち、良い文字列であるようなものは $ N $ 個ある。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $
Output Format
$ 1 $ 行目には $ s $ の長さ $ |s| $ を出力せよ。 $ 2 $ 行目に $ s $ の各要素を $ 1 $ 文字目から順に空白区切りで出力せよ。$ s $ が上記の条件を満たすならば正解となる。
Explanation/Hint
### 制約
- $ 1\ ≦\ N\ ≦\ 10^{12} $
### Sample Explanation 1
$ s $ の部分列であって良い文字列となるようなものは (1,1) と (1,1,1,1) の $ 2 $ 種類があります。(1,1) であるような部分列は $ 6 $ 個、(1,1,1,1) であるような部分列は $ 1 $ 個あるため、合計 $ 7 $ 個です。