#include <iostream>
#define EN unsigned int
using namespace std;

EN LCM(EN, EN);
EN GCD(EN, EN);
EN MIN(EN, EN);
EN MAX(EN, EN);

int main() {
	EN a, b, max, min_arg, max_runs, counter = 0;
	bool found_answer=false;
	cin >> a >> b;
	max = LCM(a, b);
	min_arg = MIN(a, b);
	if (a > b) max_runs = a - min_arg;
	else max_runs = b - min_arg;
	if (MAX(a, b) % min_arg != 0) {
		//cout << "I'm in IF\n";
		while (counter < max_runs) {
			++counter;
			if (LCM(a + counter, b + counter) < max) {
				found_answer = true;
				break;
			};
		}
	}
	if (!found_answer) counter = 0;
	cout << counter << endl;
	return 0;
}


EN GCD(EN a, EN b) {
	EN c = 0;
	while (a%b != 0) {
		c = b;
		b = a%b;
		a = c;
	}
	return b;
}

EN LCM(EN a, EN b) {
	return (a*b) / GCD(a, b);
}

EN MIN(EN a, EN b) {
	if (a < b) return a;
	else return b;
}

EN MAX(EN a, EN b) {
	if (a > b) return a;
	else return b;
}