Іспит
ліміт часу на тест
1 second
ліміт використання пам'яті на тест
256 megabytes
введення
standard input
виведення
standard output

Після вживання великого об'єму компотику люди втрачають змогу правильно рахувати. Саме така історія трапилася з нашим героєм. Він був впевнений, що йому вистачає набраних за семестр балів, щоб мати змогу скласти іспит. На жаль, він помилився в розрахунках. Йому не вистачає однієї задачі, а екзамен вже завтра, допоможіть йому та розв'яжіть цю задачу.

Вам дано масив $$$a$$$, який складається з $$$n$$$ цілих чисел та ціле число $$$k$$$. Ми називаємо масив $$$b$$$ з $$$t$$$ елементів гарним, якщо виконується popcount$$$(b_1 | b_2 | \dots b_{t-1} | b_t) \ge k$$$, де $$$|$$$ позначає операцію побітового АБО, а popcount($$$x$$$) — функція, яка повертає кількість одиниць у бітовому записі числа $$$x$$$. Дисбаланс масиву $$$b$$$ дорівнює max(b) - min(b), де max і min позначають максимальний та мінімальний елементи масиву $$$b$$$ відповідно.

Знайдіть найменше значення дисбалансу серед усіх гарних підпослідовностей масиву $$$a$$$. Якщо такої підпослідовності не існує, виведіть "-1".

Побітове АБО між двома числами $$$a$$$ і $$$b$$$ визначається для кожного біта окремо. Якщо в числі $$$a$$$ $$$i$$$-й біт дорівнює $$$1$$$, або в числі $$$b$$$ він дорівнює $$$1$$$, то і в значенні побітового АБО він буде дорівнювати $$$1$$$. Наприклад, $$$5_{10}|9_{10}$$$ = $$$0101_2 | 1001_2$$$ = $$$1101_2$$$ = $$$13_{10}$$$.

Масив $$$c$$$ є підпослідовністю масиву $$$a$$$, якщо масив $$$c$$$ можна отримати з масиву $$$a$$$ шляхом видалення декількох (можливо, нуля) елементів.

Вхідні дані

Перший рядок містить два цілі числа $$$n$$$ ($$$1 \le n \le 10^6$$$) і $$$k$$$ ($$$1 \le k \le 30$$$).

Другий рядок містить $$$n$$$ цілих чисел $$$a_i$$$ ($$$0 \le a_i < 2^{30}$$$).

Вихідні дані

Виведіть одне ціле число — відповідь на задачу.

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

Гарантується, що рішення, які працюють правильно при $$$n \le 20$$$ набиратимуть принаймні $$$5$$$ балів.

Гарантується, що рішення, які працюють правильно при $$$a_i < 1024$$$ набиратимуть принаймні $$$15$$$ балів.

Гарантується, що рішення, які працюють правильно при $$$n \le 10^5$$$ набиратимуть принаймні $$$85$$$ балів.

Приклади

Вхідні дані
5 2
1 2 3 4 5
Вихідні дані
0
Вхідні дані
5 4
7 10 2 8 12
Вихідні дані
1
Вхідні дані
2 20
8 16
Вихідні дані
-1

Пояснення

Пояснення до першого прикладу:

Можна обрати $$$b$$$ = $$$\{3\}$$$, або $$$b$$$ = $$$\{5\}$$$, оскільки $$$3$$$ = $$$11_2$$$ та $$$5$$$ = $$$101_2$$$ і popcount$$$(3)$$$ = popcount$$$(5)$$$ = $$$2$$$, що дорівнює $$$k$$$ = $$$2$$$.

Пояснення до другого прикладу:

Можна обрати $$$b$$$ = $$$\{7,8\}$$$, popcount$$$(7|8)$$$ = popcount$$$(0111_2 | 1000_2)$$$ = popcount$$$(1111_2)$$$ = $$$4$$$, що дорівнює $$$k$$$ = $$$4$$$.

Пояснення до третього прикладу:

Можна показати, що не існує такої підпослідовності $$$b$$$ масиву $$$a$$$, що задовольняє умовам.