Конференцiя
Конференцiя
Сем i Юра виступають на конференцiї. Всього у них є n доповiдей, зануднiсть i-ої з яких рiвна ai. Конференцiя триває k днiв. Кожну доповiдь Сем i Юра читають рiвно один раз в один iз днiв. Кожного дня повинна бути принаймнi одна доповiдь Сема та Юри.
Зануднiсть дня рiвна xor занудностей всiх доповiдей, прочитаних в цей день. Органiзатори конференцiї хочуть так розставити доповiдi Сема та Юри, щоб мiнiмiзувати суму занудностей днiв.
Допоможiть їм в цьому.
Операцiя xor (позначається як ⊕) — операцiя додавання за модулем 2. Для того, щоб знайти
xor двох чисел a та b, потрiбно розкласти обидва числа у двiйкову систему та додати по модулю 2
окремо кожен бiт. Наприклад, 4 ⊕ 6 = 2, бо 410
= 1002
, 610
= 1102
. 410
⊕ 610
= 0102
= 210
.
Дана операцiя реалiзована, як оператор ^ в C++, C#, Java та xor у Pascal. Хor набору чисел c1
; c2
; : : : ; ck
рiвний (**: : : ((c1
⊕c2
) ⊕ c3
) : : : ⊕ ck
**).
Формат вхiдних даних
Перший рядок мiстить два цiлi числа n та k (**1 ⩽ k ⩽ n ⩽ 105
**) — кiлькiсть доповiдей та кiлькiсть днiв.
Другий рядок мiстить n цiлих чисел a1
; a2
; : : : ; an
(**1 ⩽ ai
⩽ 109
**) — зануднiсть i-ої доповiдi.
Формат вихiдних даних
Виведiть єдине цiле число — мiнiмальну сумарну зануднiсть.
7 4 47 74 4 7 7 4 7
106