#include using namespace std; long long A,B; long long x,y; long long answer; long long cont = 0; bool prime(long long a) { if (a == 1) return true; for (int i = 2; i*i <= a; ++i) { if (a % i == 0) { return false; } } return true; } long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); } int main() { cin >> A >> B; x = A; y = B; while (x <= y) { cont++; if (cont == 5000) break; if (prime(x)) { answer = max(answer, B - x + 1); break; } if (prime(y)) { answer = max(answer, y - A + 1); break; } x++; y--; } for (long long i = A; i <= min(A+2000,B-1); ++i) { for (long long j = B; j >= max(B-2000,A+1); --j) { if (gcd(i,j) == 1) { answer = max(answer,j-i+1); } } } cout << answer << '\n'; return 0; }