#include <bits/stdc++.h>
using namespace std;
long long fun(long long b, long long n) {
  return n < b ? n : fun(b, n / b) + n % b;
}
int main() {
  long long n, s;
  scanf("%lld%lld", &n, &s);
  if (s > n) return puts("-1"), 0;
  if (s == n) return printf("%lld\n", n + 1), 0;
  long long m = sqrt(n);
  for (long long i = 2; i <= m; i++) {
    if (fun(i, n) == s) {
      printf("%lld\n", i);
      return 0;
    }
  }
  long long ans = 1e11;
  long long ns = n - s;
  for (long long i = 1; i * i <= ns; i++) {
    if ((n - s) % i == 0) {
      long long b = (ns) / i + 1;
      if (fun(b, n) == s) {
        ans = min(ans, b);
      }
      if (fun(ns / b, n) == s) {
        ans = min(ans, b);
      }
    }
  }
  printf("%lld\n", ans != 1e11 ? ans : -1);
  return 0;
}
