#include <bits/stdc++.h>
using namespace std;
int p, y;
bool isPrime(int x) {
  for (int i = 2; i * i <= x; i++) {
    if (x % i == 0) return false;
  }
  return true;
}
int f(int Y) {
  while (Y != p) {
    if (isPrime(Y)) {
      return Y;
    }
    Y--;
  }
  return -1;
}
int main() {
  scanf("%d %d", &p, &y);
  int up = f(y);
  if (up == -1) {
    printf("-1\n");
    return 0;
  }
  for (int i = y; i >= up; i--) {
    bool ok = true;
    for (int j = 2; j * j <= i && ok; j++) {
      if (i % j == 0) {
        if (j <= p) ok = false;
      }
    }
    if (ok) {
      printf("%d\n", i);
      return 0;
    }
  }
  printf("-1\n");
  return 0;
}
