#include #include #include using namespace std; vector primes(const long long maxn){ vector e_prim(maxn/2+1, true); vector rez = {2}; bool good = true; for(long long i = 3; i <= maxn; i += 2){ if(e_prim[i/2]){ rez.push_back(i); } if(good){ if(i*i > maxn){ good = false; continue; } for(long long j = i*i; j <= maxn; j += 2*i){ e_prim[j/2] = false; } } } return rez; } int main(){ long long a, b; cin >> a >> b; const auto v = primes(2*b); long long rez = -1; for(const auto p : v){ if(2*a <= p && p <= a+b){ rez = max(rez, p - 2*a + 1); } else if(a+b <= p && p <= 2*b){ rez = max(rez, 2*b - p + 1); } } cout << rez; return 0; }