#include <bits/stdc++.h>
using namespace std;
#define int long long

// computes gcd(a,b)
int gcd(int a, int b) {
    while (b) { int t = a%b; a = b; b = t; }
    return a;
}

// computes lcm(a,b)
int lcm(int a, int b) {
    return a / gcd(a, b)*b;
}

int A, B;
int m, best_n, ans;

void get_ans (int i) {
    int x = m / i;
    int N = x - (A % x);

    int l = lcm (A + N, B + N);
    if (l < ans && N > 0) {
        ans = l;
        best_n = N;
    }
    if (l == ans && N < best_n) {
        best_n = N;
    }
}

#undef int
int main() {
#define int long long

    cin >> A >> B;
    if (A < B) swap(A, B);

    m = A - B;
    if (m == 0) {
        cout << 1 << "\n";
        return 0;
    }

    ans = 1000000000000000001;
    best_n = 0;
    for (int i = 1; i * i <= m; i++) {
        if (m % i != 0) continue;
        get_ans(i);
        get_ans(m / i);
    }

    cout << best_n << "\n";

    return 0;
}