eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Загублені біти

Загублені біти

Костя полюбляє всі натуральні числа, але гарні числа – його найулюбленіші. Гарними числами він вважає числа, які націло діляться на k.

Одного разу Костя побачив в крамниці гарне натуральне число n. Йому воно так сподобалося, що він вирішив його купити та подарувати своїй мамі. Але коли Костя прийшов додому він побачив, що десь загубив деякі біти цього числа і воно стало негарним числом m. Допоможіть йому відновити деякі біти, щоб число знову стало гарним. (Відновити біт – це змінити біт з 0 на 1)

Вхідні дані:

В першому рядку вводиться два числа: m ≤ 106 та k ≤ 106.

Вихідні дані:

В єдиному рядку потрібно вивести число n. Якщо варіантів декілька, потрібно вивести найменший можливий варіант. Якщо число зробити гарним неможливо, виведіть -1.

Пояснення:

В першому прикладі m=4, тобто у двійковій системі числення воно записується як 100. Є три варіанти, які біти відновити:

• Відновити молодший біт. Тоді число стане 1012 = 510 – не ділиться на 3.

• Відновити середній біт. Тоді число стане 1102 = 610 – ділиться на 3.

• Відновити і молодший, і середній біти. Тоді число стане 1112=710 – не ділиться на 3.

Таким чином, єдиною відповіддю буде число 6.

Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
4 3
Выходные данные #1
6
Входные данные #2
39 6
Выходные данные #2
-1
Входные данные #3
9 3
Выходные данные #3
9
Автор Жуковський Сергій Станіславович
Источник Джерело Серія задач "Абетка програмування"