#include<iostream>
#include<stdio.h>
#include<string>
#include<string.h>
#include<vector>
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;

	int diferenta = 0;
	int diferenta_max = 0;

	if (gcd(x, y) == 1)
	{
		printf("%d", y - x + 1);
		return 0;
	}

	for (int i = x; i < x + 51 || i < y; i++)
	{
		for (int j = y; j > y - 51 || j > x; j--)
		{
			if (gcd(i, j) == 1)
			{
				diferenta = j - i + 1;
				if (diferenta_max < diferenta)
				{
					diferenta_max = diferenta;
				}
			}
		}
	}

	if (diferenta_max != 0)
	{
		printf("%d\n", diferenta_max);
	}
	else
	{
		printf("%d\n", -1);
	}
	
	return 0;
}

#pragma warning(pop)