[ABC044D] 桁和

题意翻译

一天,可爱的 zqx 发现了一个很好玩的函数。 对于**大于** $1$ 的整数 $b$ 和**正整数** $n$,她定义 $f(b,n)$ 为 $n$ 在 $b$ 进制下的数位和。形式化地,定义 $f(b,n)$: $$ f(b,n)=\begin{cases} n, & n\lt b \\ \displaystyle f\left(b,\left\lfloor\frac{n}{b}\right\rfloor\right)+(n\bmod b), & n\ge b \end{cases} $$ 这里,$n\bmod b$ 表示 $n$ 除以 $b$ 得到的余数。 现在有正整数 $n,s$,zqx 想要知道是否存在一个大于 $1$ 的整数 $b$,使得 $f(b,n)=s$。如果存在的话,你还需要告诉她符合条件的 $b$ 的**最小值**。(不存在输出 $-1$)

题目描述

[problemUrl]: https://atcoder.jp/contests/abc044/tasks/arc060_b $ 2 $ 以上の整数 $ b $ および $ 1 $ 以上の整数 $ n $ に対し、関数 $ f(b,n) $ を次のように定義します。 - $ n\ <\ b $ のとき $ f(b,n)\ =\ n $ - $ n\ \geq\ b $ のとき $ f(b,n)\ =\ f(b,\,{\rm\ floor}(n\ /\ b))\ +\ (n\ {\rm\ mod}\ b) $ ここで、$ {\rm\ floor}(n\ /\ b) $ は $ n\ /\ b $ を超えない最大の整数を、 $ n\ {\rm\ mod}\ b $ は $ n $ を $ b $ で割った余りを表します。 直感的に言えば、$ f(b,n) $ は、$ n $ を $ b $ 進表記したときの各桁の和となります。 例えば、 - $ f(10,\,87654)=8+7+6+5+4=30 $ - $ f(100,\,87654)=8+76+54=138 $ などとなります。 整数 $ n $ と $ s $ が与えられます。 $ f(b,n)=s $ を満たすような $ 2 $ 以上の整数 $ b $ が存在するか判定してください。 さらに、そのような $ b $ が存在するならば、その最小値を求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ n $ $ s $

输出格式


$ f(b,n)=s $ を満たす $ 2 $ 以上の整数 $ b $ が存在するならば、そのような $ b $ の最小値を出力せよ。 そのような $ b $ が存在しないならば、代わりに `-1` を出力せよ。

输入输出样例

输入样例 #1

87654
30

输出样例 #1

10

输入样例 #2

87654
138

输出样例 #2

100

输入样例 #3

87654
45678

输出样例 #3

-1

输入样例 #4

31415926535
1

输出样例 #4

31415926535

输入样例 #5

1
31415926535

输出样例 #5

-1

说明

### 制約 - $ 1\ \leq\ n\ \leq\ 10^{11} $ - $ 1\ \leq\ s\ \leq\ 10^{11} $ - $ n,\,s $ はいずれも整数である