4. Зарядка робота
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Робот с кодовым именем МАГД имеет тип $$$n$$$. Для подзарядки ему требуется устройство мощностью $$$p$$$, удовлетворяющее условиям:

$$$ p \ge n + 1 $$$ (иначе роботу не хватит мощности для подзарядки)

$$$ p \le n + k $$$ (иначе робот может сгореть)

Из всех подходящих мощностей $$$p$$$ нужно выбрать ту, при которой НОК($$$n$$$, $$$p$$$) минимален, чтобы аккумулятор робота прослужил как можно дольше. По заданным $$$n$$$ и $$$k$$$ требуется вычислить $$$p$$$.

НОК($$$a$$$,$$$b$$$) – это наименьшее общее кратное чисел $$$a$$$ и $$$b$$$, то есть наименьшее натуральное число, которое делится одновременно и на $$$a$$$, и на $$$b$$$.

Входные данные

Вводятся два числа $$$n$$$ и $$$k$$$, каждое в отдельной строке ($$$1 \le n \le 10^{12}$$$, $$$ 1 \le k \le 10^{12}$$$)

Выходные данные

Требуется вывести число $$$p$$$ — искомую мощность устройства.

Система оценки

Каждый тест оценивается независимо. Тесты разбиты на группы, соответствующие следующим подзадачам:

ПодзадачаДополнительные условияБаллы
$$$1$$$$$$n \le 100, k \le 100$$$до 15
$$$2$$$$$$n \le 10^5, k \le 10^5$$$до 15
$$$3$$$$$$n \le 5 \cdot 10^7$$$до 30
$$$4$$$до 40
Примеры
Входные данные
6
4
Выходные данные
9
Входные данные
10
12
Выходные данные
20
Примечание

Обратите внимание, что входные данные и ответ могут выходить за пределы диапазона возможных значений 32-битной целочисленной переменной, поэтому необходимо использовать 64-битный целочисленный тип данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#). В языке Python ничего дополнительно делать не требуется.