#arc060b. [arc060_b]Digit Sum

[arc060_b]Digit Sum

题目描述

对于整数b(b2)b (b \geq 2)n(n1)n (n \geq 1),定义函数f(b,n)f(b,n)如下:

  • n<bn < b时,f(b,n)=nf(b,n) = n
  • nbn \geq b时,$f(b,n) = f(b,\,{\rm floor}(n / b)) + (n \ {\rm mod} \ b)$。

其中,floor(n/b){\rm floor}(n / b)表示不超过n/bn / b的最大整数,n mod bn \ {\rm mod} \ b表示nn除以bb的余数。

更简单地说,f(b,n)f(b,n)等于nn在以bb为基数的情况下的各个位数之和。例如,以下式子成立:

  • f(10,87654)=8+7+6+5+4=30f(10,\,87654)=8+7+6+5+4=30
  • f(100,87654)=8+76+54=138f(100,\,87654)=8+76+54=138

给定整数nnss,确定是否存在一个整数b(b2)b (b \geq 2),使得f(b,n)=sf(b,n)=s。如果答案为正,则找出最小的满足条件的bb

约束条件

  • 1n10111 \leq n \leq 10^{11}
  • 1s10111 \leq s \leq 10^{11}
  • n,sn,\,s为整数。

输入

输入的格式如下,从标准输入读入:

nn ss

输出

如果存在一个整数b(b2)b (b \geq 2),使得f(b,n)=sf(b,n)=s,则打印最小的满足条件的bb。如果不存在这样的bb,则打印-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