#include <bits/stdc++.h>
using namespace std;
long long n, s;
long long f(long long b, long long n) {
  if (n < b)
    return n;
  else
    return f(b, n / b) + n % b;
}
long long bns(long long lhs, long long rhs) {
  if (lhs == rhs) return lhs;
  long long mid = (lhs + rhs + 1) / 2;
  if (f(mid, n) < s)
    return bns(lhs, mid - 1);
  else
    return bns(mid, rhs);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> s;
  if (s == n) {
    cout << n + 1 << endl;
    return 0;
  }
  long long ans = -1;
  int i;
  for (i = 2; n / i > 1e6; ++i) {
    long long lhs = n / i + 1, rhs = n / (i - 1);
    if (f(rhs, n) % (i - 1) == s % (i - 1)) {
      long long x = bns(lhs, rhs);
      if (f(x, n) == s) ans = x;
    }
  }
  for (long long j = n / i; j >= 2; --j)
    if (f(j, n) == s) ans = j;
  cout << ans << endl;
  return 0;
}
