#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
typedef long long ll;
const ll INF = 1e18;


int main() {
    ll a,b;
    cin>>a>>b;
    
    if(gcd(a,b)!=1)
    {
        cout<<0<<'\n';
        return 0;
    }

    if(a%2==1&&b%2==1)
    {
        cout<<1<<'\n';
        return 0;
    }

    ll dx = abs(a-b);
    if(dx==1)
    {
        cout<<-1<<'\n';
    }
    else 
    {
        ll res = INF;
        for(ll i=2;i*i<=dx;i++)
        {
            if(dx%i==0)
            {
                ll r = a%i;
                res = min(i-r,res);
                while(dx%i==0)
                {
                    dx/=i;
                }
            }
        }

        if(dx>1)
        {
            ll r = a%dx;
            res = min(res,dx-r);
            
        }

        cout<<res<<'\n';
        
    }




}
// 64 位输出请用 printf("%lld")

挺有趣的一个题