#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("a.in");

int a, b;
unsigned long long rez, n, bestn;

void update(int i)
{
    if(a % i == b % i)
    {
        n = (a % i) ? i - a % i : 0;
        if(((unsigned long long) (a + n) / i * (b + n)) < rez)
            bestn = n;
        rez = min(rez, ((unsigned long long)(a + n) / i * (b + n)));
    }
}

int main()
{
    rez = 1ll<<62;
    cin >> a >> b;
    if(a < b)
        swap(a, b);
    for(int i = 1 ; i * i <= a - b ; i++)
    {
        update(i);
        update((a - b) / i);
    }
    cout << bestn << "\n";
}