#include <iostream>
#include <algorithm>

using namespace std;

const int NMAX = 200;
const long long INF = ( 1LL << 62 );

typedef long long I64;

I64 A, B, L;
I64 T = 2000;

I64 GCD( I64 A, I64 B ) {
    I64 R;
    while( B ) {
        R = A % B;
        A = B;
        B = R;
    }
    return A;
}

int main() {
    cin >> A >> B;
    if( A == B ) {
        if( A == 1 ) {
            cout << "1\n";
        }
        else {
            cout << "-1\n";
        }
    }
    L = B - A;
    I64 Ans = -1;
    for( int st = A;  st <= min( A + T, B );  ++st ) {
        for( int fn = B;  fn >= max( B - T, A );  --fn ) {
            if( st >= fn )  break;
            if( GCD( st, fn ) == 1 && fn - st + 1 > Ans ) {
                Ans = fn - st + 1;
            }
        }
    }
    cout << Ans << '\n';
    return 0;
}