#include #include #include #include #include using namespace std; #pragma warning(push) #pragma warning(disable: 4996) long long x, y; long long x_initial, y_initial; int gcd(int a, int b) { if (!b) return a; return gcd(b, a % b); } int main() { //freopen("fisier.in", "r", stdin); //freopen("fisier.out", "w", stdout); cin >> x_initial >> y_initial; x = x_initial; y = y_initial; if (gcd(x, y) == 1) { printf("%d", y - x + 1); return 0; } if (x % 2 == 0 && y % 2 == 0) { y--; } while (y > x) { y -= 2; if (gcd(x, y) == 1) { printf("%d\n", y - x + 1); return 0; } } x = x_initial; y = y_initial; if (x % 2 == 0 && y % 2 == 0) { x++; } while (x < y) { x += 2; if (gcd(x, y) == 1) { printf("%d\n", y - x + 1); return 0; } } printf("%d\n", -1); return 0; } #pragma warning(pop)