Konfrans
Sem və Yura konfransda çıxış edirlər. Onların ümumilikdə ( n ) təqdimatı var və ( i )-ci təqdimatın darıxdırıcılığı ( a_i )-ə bərabərdir. Konfrans ( k ) gün davam edir. Hər bir təqdimatı Sem və Yura yalnız bir dəfə və yalnız bir gün ərzində təqdim edirlər. Hər gün mütləq Sem və Yuranın ən azı bir təqdimatı olmalıdır.
Günün darıxdırıcılığı həmin gün oxunan bütün təqdimatların darıxdırıcılıqlarının xor-una bərabərdir. Konfrans təşkilatçıları Sem və Yuranın təqdimatlarını elə yerləşdirmək istəyirlər ki, günlərin darıxdırıcılıqlarının cəmi minimum olsun.
Onlara bu işdə kömək edin.
Xor əməliyyatı ((\oplus) ilə işarə olunur) 2 moduluna görə toplama əməliyyatıdır. İki ədəd ( a ) və ( b )-nin xor-unu tapmaq üçün hər iki ədədi ikilik sistemə çevirmək və hər biti ayrı-ayrılıqda 2 moduluna görə toplamaq lazımdır. Məsələn, 4 (\oplus) 6 = 2, çünki 4_{10}
= 100_2
, 6_{10}
= 110_2
. 4_{10}
(\oplus) 6_{10}
= 010_2
= 2_{10}
.
Bu əməliyyat C++, C#, Java dillərində ^ operatoru, Pascal dilində isə xor kimi həyata keçirilir. ( c[1] ), ( c[2] ), ..., ( c[k] ) ədədlərinin xor-u ((((c[1] \oplus c[2]) \oplus c[3]) \ldots \oplus c[k])) bərabərdir.
Giriş formatı
Birinci sətir iki tam ədəd ( n ) və ( k ) ((1 \leq k \leq n \leq 10^5)) — təqdimatların sayı və günlərin sayını ehtiva edir.
İkinci sətir ( n ) tam ədəd ( a[1] ), ( a[2] ), ..., ( a[n] ) ((1 \leq a[i] \leq 10^9)) — ( i )-ci təqdimatın darıxdırıcılığını ehtiva edir.
Çıxış formatı
Tək bir tam ədəd çıxarın — minimal cəmi darıxdırıcılığı.