eolymp
bolt
Try our new interface for solving problems
Problems

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

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

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

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

Вхідні дані:

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

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

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

Пояснення:

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

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

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

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

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

Time limit 1 second
Memory limit 64 MiB
Input example #1
4 3
Output example #1
6
Input example #2
39 6
Output example #2
-1
Input example #3
9 3
Output example #3
9
Author Жуковський Сергій Станіславович
Source Джерело Серія задач "Абетка програмування"