#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  if (b == 0) {
    return a;
  }
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a * b) / (gcd(a, b)); }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long a, b;
  cin >> a >> b;
  if (a > b) {
    swap(a, b);
  }
  if (lcm(a, b) == b) {
    cout << 0;
  } else {
    long long res = b - a;
    long long min1 = 1000000000000000000;
    long long k = 1000000000000000000;
    for (long long i = 1; i * i <= res; i++) {
      if (res % i == 0) {
        long long q = i;
        long long q1 = res / i;
        long long k1 = (a / q) * q + (a % q ? q : 0);
        k1 -= a;
        long long k2 = (a / q1) * q1 + (a % q1 ? q1 : 0);
        k2 -= a;
        long long ans1 = lcm(a + k1, b + k1);
        if (min1 > ans1) {
          min1 = ans1;
          k = k1;
        } else if (min1 == ans1) {
          k = min(k, k1);
        }
        long long ans2 = lcm(a + k2, b + k2);
        if (min1 > ans2) {
          min1 = ans2;
          k = k2;
        } else if (min1 == ans2) {
          k = min(k, k2);
        }
      }
    }
    cout << k;
  }
}
