#include<iostream>
using namespace std;

int  cmmdc(unsigned long long  a, unsigned long long  b)
{
	unsigned r;
	r = a%b;
	while (r)
	{
		a = b; b = r; r = a%b;
	}
	return b;
}

long long a, b, a1, b1;

int main()
{
	cin >> a >> b;
	a1 = a;
	b1 = b;
	if (cmmdc(a, b) == 1) cout << b - a + 1;
	else
	{
		long long mx1 = 0;
		long long mx2 = 0;
		while (cmmdc(a1, b) != 1)
		{
			if (a1 >= b) {
				cout << -1;
				return 0;
			}
			++a1;
		}
		mx1 = b - a1+1;
		while (cmmdc(a, b1) != 1) {
			if (b1 <= a){
				cout << -1;
				return 0;
			}
			--b1;
		}
		mx2 = b1 - a + 1;
		if (mx1 > mx2) cout << mx1;
		else cout << mx2;
	}

	return 0;
}