#include <bits/stdc++.h>
using std::swap;
long long a, b, ans = 2e18, k = 0;
void gate(long long gcd) {
  int t = b / gcd + (b % gcd != 0);
  int add = gcd * t - b;
  if ((b + add) / gcd * (a + add) < ans)
    ans = (b + add) / gcd * (a + add), k = add;
}
int main() {
  scanf("%I64d %I64d", &a, &b);
  if (a > b) swap(a, b);
  if (a == b) {
    puts("0");
    return 0;
  }
  long long d = b - a;
  if (b % d == 0) {
    puts("0");
    return 0;
  }
  int s = sqrt(d);
  for (int i = 1; i <= s; ++i)
    if (d % i == 0) {
      gate(i);
      gate(d / i);
    }
  printf("%I64d\n", k);
  return 0;
}
