#include <bits/stdc++.h>
using namespace std;
long long n, s, sum = -1;
long long work(int ni) {
  long long ans = 0;
  long long nn = n;
  while (nn) ans += nn % ni, nn /= ni;
  return ans;
}
int main() {
  scanf("%lld%lld", &n, &s);
  long long u = sqrt(n) + 1;
  for (long long i = 2; i <= u; i++) {
    long long c = work(i);
    if (s == c) {
      sum = i;
      break;
    }
  }
  if (n == s) sum = n + 1;
  if (sum == -1 && n > s) {
    long long c = n - s;
    long long u = c / (u - 1) + 1;
    for (long long i = u; i >= 1; i--) {
      long long b = c / i + 1;
      if (!(c % i) && s >= i && (s - i) < b && i < b) {
        sum = b;
        break;
      }
    }
  }
  printf("%lld", sum);
  return 0;
}
