#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void chkmin(T &a, T b) {
  if (a > b) a = b;
}
template <class T>
inline void chkmax(T &a, T b) {
  if (a < b) a = b;
}
bool prime(int x) {
  if (x <= 1) return false;
  for (int i = 2; i * i <= x; i++)
    if (x % i == 0) return false;
  return true;
}
int pow(int x, int y, int mod) {
  if (y == 0) return 1;
  int res = pow(x, y / 2, mod);
  res = 1LL * res * res % mod;
  if (y & 1) res = 1LL * res * x % mod;
  return res;
}
bool check(int n, int p) {
  for (int i = 2, q = p - 1; i * i <= q; ++i)
    if (q % i == 0) {
      if (pow(n, i, p) == 1 || pow(n, q / i, p) == 1) return false;
    }
  return true;
}
int main() {
  int n, x;
  scanf("%d%d", &n, &x);
  if (!prime(n + 1)) {
    puts("-1");
    return 0;
  }
  for (--x; x > 1; --x)
    if (check(x, n + 1)) {
      printf("%d\n", x);
      return 0;
    }
  puts("-1");
  return 0;
}
