#include #include using namespace std; bool prim (long long x) { long long d, lim; lim = sqrt (x); if (x % 2 == 0 && x != 2) return 0; if (x == 2) return 1; if (x == 0 || x == 1) return 0; for (d = 3; d <= lim; d ++) if (x % d == 0) return 0; return 1; } long long gcd (long long a, long long b) { long long r; while (b) { r = a % b; a = b; b = r; } return a; } int main () { long long ans; long long a, b, c, d, i, j, lim2, lim4; long long x, y; /*freopen ("prime.in", "r", stdin); freopen ("prime.out", "w", stdout);*/ scanf ("%lld%lld", &a, &b); x = gcd (a, b); if (x == 1) { ans = b - a + 1; printf ("%lld\n", ans); return 0; } /*for (c = a; ;c ++) if (prim (c)) break; for (d = b; ;d --) if (prim (d)) break;*/ c = a + 64; d = b - 64; ans = d - c + 1; lim2 = min (c, b); lim4 = max (d, a); for (i = a; i <= lim2; i ++) for (j = b; j >= lim4; j --) if (i <= j && j - i + 1 > ans) { x = gcd (i, j); if (x == 1 && j - i + 1 > ans) ans = j - i + 1; } printf ("%lld\n", ans); return 0; }