#include #include #include #include using namespace std; #define REP(i,s,e) for (i = s; i <= e; i++) #define rep(i,n) REP (i,0,(int)(n)-1) #define RREP(i,s,e) for (i = s; i >= e; i--) #define rrep(i,n) RREP (i,(int)(n)-1,0) #define INF (int)1e8 #define MOD (int)(1e9+7) typedef long long ll; bool prime[100001]; ll least_prime(ll x) { for (int i = 2; i * i <= x; i++) if (x % i == 0) return i; return x; } int main(void) { for (int i = 2; i <= 100000; i++) prime[i] = true; for (int i = 2; i * i <= 100000; i++) if (prime[i]) { for (int j = i*2; j <= 100000; j+=i) prime[j] = false; } ll l, h; cin >> l >> h; for (int x = sqrt(h); ; x--) { if (prime[x]) for (ll y = h / x; y * x >= l; y--) { if (least_prime(y) >= x) { cout << y * x << endl; return 0; } } } return 0; }