#include <bits/stdc++.h>
using namespace std;
long long f(long long b, long long n) {
  if (n < b) return (n);
  return (f(b, n / b) + n % b);
}
long long Search(long long N, long long S) {
  if (N == S) return (N + 1);
  for (long long i = 2; i * i <= N; i++) {
    if (f(i, N) == S) return (i);
  }
  for (long long i = sqrt(N); i >= 0; i--) {
    if ((N - S) % i == 0 && f((N - S) / i + 1, N) == S)
      return ((N - S) / i + 1);
  }
  return (-1);
}
int main() {
  long long N, S;
  cin >> N >> S;
  cout << Search(N, S) << endl;
}
