#include <bits/stdc++.h>
using namespace std;
long long n, s, b;
inline long long f(long long b, long long n) {
  if (n < b) return n;
  return f(b, n / b) + n % b;
}
int main() {
  scanf("%lld%lld", &n, &s);
  if (s == 1) {
    printf("%lld", n);
    return 0;
  }
  for (long long b = 2; b * b <= n; ++b) {
    long long sum = f(b, n);
    if (sum == s) {
      printf("%lld", b);
      return 0;
    }
  }
  long long m = n - s;
  for (long long d = 2; d * d <= n; ++d) {
    if (m % d == 0) {
      long long b = m / d;
      long long sum = f(b, n);
      if (sum == s) {
        printf("%lld", b);
        return 0;
      }
    }
  }
  printf("-1");
  return 0;
}
