#include <bits/stdc++.h>
using namespace std;
int n, m;
bool prime(int x) {
  for (int i = 2; i * i <= x; i++)
    if (x % i == 0) return false;
  return x > 1;
}
int power(long long a, long long b, long long mod) {
  if (b == 0) return 1;
  long long s = power(a, b / 2, mod);
  s = s * s % mod;
  if (b & 1) s = s * a % mod;
  return s;
}
int main() {
  scanf("%d%d", &n, &m);
  int p = n + 1;
  if (!prime(p)) {
    printf("-1\n");
    return 0;
  }
  for (int b = m - 1; b > 1; b--) {
    bool flag = 0;
    for (int i = 2; i * i <= n && !flag; i++)
      if (n % i == 0) {
        if (power(b, i, p) == 1) flag = true;
        if (power(b, n / i, p) == 1) flag = true;
      }
    if (!flag) {
      printf("%d\n", b);
      return 0;
    }
  }
  printf("-1\n");
  return 0;
}
