#include using namespace std; template struct mlcm { mlcm(T _a, T _b) : a(_a), b(_b) { if (a > b) swap(a, b); bn = 1; blcm = lcm(b+1, a+1); } T gcd(T h, T l) { T t; while (l) { t = l; l = h%l; h = t; } return h; } T lcm(T h, T l) { return h/gcd(h, l)*l; } T solve() { for (T i = 1; i*i < b-a; i++) { T x = lcm(b+i, a+i); if (x < blcm) { blcm = x; bn = i; } } return bn; } T a, b; T bn, blcm; }; int main() { long long a, b; cin >> a >> b; mlcm m(a, b); cout << m.solve() << endl; return 0; }