#ATarc060b. [ABC044D] 桁和

[ABC044D] 桁和

题目描述

对于大于等于 22 的整数 bb 以及大于等于 11 的整数 nn,定义函数 f(b,n)f(b,n) 如下:

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

这里,floor(n/b)\mathrm{floor}(n / b) 表示不超过 n/bn / b 的最大整数,nmodbn \bmod b 表示 nn 除以 bb 的余数。

直观来说,f(b,n)f(b,n) 就是将 nnbb 进制表示时各位数字之和。例如:

  • 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。请判断是否存在大于等于 22 的整数 bb 使得 f(b,n)=sf(b,n) = s。如果存在,请求出满足条件的最小 bb

输入格式

输入以如下格式从标准输入读入:

nn ss

输出格式

如果存在大于等于 22 的整数 bb 满足 f(b,n)=sf(b,n) = s,请输出最小的这样的 bb。如果不存在,请输出 -1

样例 1

输入

87654
30

输出

10

样例 2

输入

87654
138

输出

100

样例 3

输入

87654
45678

输出

-1

样例 4

输入

31415926535
1

输出

31415926535

样例 5

输入

1
31415926535

输出

-1

说明/提示

限制条件

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

由 ChatGPT 4.1 翻译