AT_abc235_d [ABC235D] Multiply and Rotate
Description
[problemUrl]: https://atcoder.jp/contests/abc235/tasks/abc235_d
正の整数 $ a $ があります。また、黒板に $ 1 $ 個の数が $ 10 $ 進表記で書かれています。
黒板に現在書かれている数を $ x $ としたとき、高橋君は次のいずれかの操作を行い、黒板に書かれている数を変化させることができます。
- $ x $ を消し、 $ x $ を $ a $ 倍した数を $ 10 $ 進表記で新たに書きこむ。
- $ x $ を文字列とみなして、列の末尾の数字を文字列の先頭に移動させる。
ただし、この操作は $ x\ \geq\ 10 $ かつ $ x $ が $ 10 $ で割り切れないときにしか行えない。
たとえば $ a\ =\ 2,\ x\ =\ 123 $ であるとき、高橋君は次のいずれかの操作を行うことができます。
- $ x $ を消して、 $ x\ \times\ a\ =\ 123\ \times\ 2\ =\ 246 $ を新たに書きこむ。
- $ x $ を文字列とみなして、`123` の末尾の数字である `3` を先頭に移動させる。黒板に書かれている数は $ 123 $ から $ 312 $ に変化する。
はじめ、黒板には $ 1 $ が書かれています。書かれている数を $ N $ に変化させるには最小で何回の操作が必要ですか?ただし、どのように操作しても書かれている数を $ N $ に変化させられない場合は $ -1 $ を出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ a $ $ N $
Output Format
答えを出力せよ。
Explanation/Hint
### 制約
- $ 2\ \leq\ a\ \lt\ 10^6 $
- $ 2\ \leq\ N\ \lt\ 10^6 $
- 入力はすべて整数である。
### Sample Explanation 1
以下に説明する操作を行うことで、 黒板に書かれている数を $ 4 $ 回で $ 1 $ から $ 72 $ に変化させることができます。 - $ 1 $ つ目の操作を行う。黒板に書かれている数は $ 1\ \to\ 3 $ に変わる。 - $ 1 $ つ目の操作を行う。黒板に書かれている数は $ 3\ \to\ 9 $ に変わる。 - $ 1 $ つ目の操作を行う。黒板に書かれている数は $ 9\ \to\ 27 $ に変わる。 - $ 2 $ つ目の操作を行う。黒板に書かれている数は $ 27\ \to\ 72 $ に変わる。 $ 3 $ 回以下の操作で $ 72 $ に変化させることはできないため、答えは $ 4 $ になります。
### Sample Explanation 2
どのように操作しても黒板に書かれている数を $ 5 $ に変化させることはできません。
### Sample Explanation 3
適切に操作を選ぶことで、 $ 1\ \to\ 2\ \to\ 4\ \to\ 8\ \to\ 16\ \to\ 32\ \to\ 64\ \to\ 46\ \to\ 92\ \to\ 29\ \to\ 58\ \to\ 116\ \to\ 611 $ と $ 12 $ 回の操作で黒板に書かれている数を $ 611 $ に変化させることができ、これが最小です。