#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n;
  long long m;
  scanf("%lld%lld", &n, &m);
  int n2 = sqrt(n);
  int flag = 0;
  long long res = -1;
  if (n == m) {
    res = n + 1;
    flag = 1;
  }
  for (int i = 2; i <= n2; i++) {
    int ans = 0;
    int k = n;
    while (k) {
      ans += (k % i);
      k /= i;
    }
    if (ans == m) {
      flag = 1;
      res = i;
      break;
    }
  }
  if (!flag) {
    long long o = n - m;
    int o2 = sqrt(o);
    for (int i = 1; i <= o2; i++) {
      if (o % i == 0) {
        long long k = o / i + 1;
        long long x = n / k;
        long long y = n % k;
        if (x + y == m) {
          res = k;
          flag = 1;
        }
      }
    }
  }
  printf("%lld\n", res);
  return 0;
}
