#include using namespace std; long long factor(long long n) { for (long long i = 2; i * i <= n; i++) { if (n % i == 0) return i; } return n; } int main() { long long L, H; cin >> L >> H; const int N = 1e5 + 100; vector primes; vector is_prime(N, true); for (long long i = 2; i < N; i++) { if (is_prime[i]) { primes.push_back(i); for (long long j = i * 2; j < N; j += i) { is_prime[j] = false; } } } reverse(primes.begin(), primes.end()); for (long long p : primes) { if (p * p > H) continue; for (long long q = H / p; p * q >= L; q--) { if (factor(q) >= p) { cout << p * q << endl; return 0; } } } }