#dwango2016finala. [dwango2016final_a]通勤
[dwango2016final_a]通勤
問題文
ニワンゴくんはdwango社のオフィスに通勤しています。家からオフィスまでの距離はメートルです。 ニワンゴくんは人間ではないので、通勤の方法も少し特殊です。
具体的には、以下のつの手順を行いオフィスに向かいます:
- オフィスに向かってメートル飛行する
- の値を倍にする。ただし、はニコ数でなければならない。
この つの手順は、好きな順番で、好きな回数だけ行うことができます。 ここで、ニコ数とは、進法で表すとそれぞれの桁がまたはからなる正整数で、隣り合う桁の数字が異なるような数のことです。例えば、はニコ数ですが、 はニコ数ではありません。
また、の値ははじめはです。
ニワンゴくんは、通勤時間を減らすため、オフィスに向かって合計でちょうどメートル進むために必要な飛行回数の最小値を求めたいと思っています。 あなたの仕事は、ニワンゴくんに代わってこの最小値を求めるプログラムを書くことです。
入力
入力は以下の形式で標準入力から与えられる。
- 行目には、オフィスまでの距離を表す整数 が与えられる。
部分点
この問題には部分点が設定されている。
- を満たすデータセットに正解した場合、部分点として 点が与えられる。
- 追加の制約のないデータセットに正解した場合、部分点として追加で 点が与えられる。合計で点となる。
出力
ニワンゴくんの飛行回数の最小値を 行に出力せよ。 出力の最後には改行を忘れないこと。
入力例1
3
出力例1
2
以下の方法で、飛行回数回でメートル進むことができます。回以下でメートル進む方法はありません。
- メートル飛行する
- を倍にする
- メートル飛行する
入力例2
5
出力例2
1
入力例3
300
出力例3
2
入力例4
31
出力例4
3