#include #include using namespace std; using ll = long long; void solve(ll L, ll R){ if (R - L >= 45000){ R = L + 45000; } vector> divs(R - L + 1, vector(0)); vector now(R - L + 1); for (ll i = L; i <= R; i++){ now[i - L] = i; } vector isprime(23000001, true); for (ll i = 2; i <= 23000000; i++){ if (isprime[i]){ for (ll j = 2; j * i <= 23000000; j++){ isprime[j * i] = false; } } } for (ll i = 2; i <= 23000000; i++){ ll min_v = ((L + i - 1) / i) * i; for (ll j = min_v; j <= R; j += i){ while (now[j - L] % i == 0){ now[j - L] /= i; divs[j - L].push_back(i); } } } for (ll j = 0; j <= R - L; j++){ if (now[j] != 1){ divs[j].push_back(now[j]); } } for (ll j = 0; j <= R - L; j++){ if (divs[j].size() != 4){ continue; } if (divs[j][0] == divs[j][1] && divs[j][1] != divs[j][2] && divs[j][2] != divs[j][3] && divs[j][0] != 2){ cout << L + j << endl; return; } } cout << -1 << endl; } int main(){ ll L, R; cin >> L >> R; solve(L, R); }