Chino的数学很差,因此Cocoa非常担心。这一天,Cocoa准备教Chino学习异或。
众所周知,,即“
异或
”表示了
和
的二进制按位异或的结果(在C/C++中,
表示了异或运算。),它的规则是如果这一位相同为0,否则为1.例如,
,因为
,
,根据定义,它们之间的异或值是
,下面是异或运算的真值表:
A | B | |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
异或还有一些非常有趣的性质,比如,
,
之类的。定义很简单,Chino也一下就学会了,那么现在就是作业时间啦!
开往兔子镇的火车一开始还是手摇式的木板车,所有人都在木板上做成一排,当然,就像你想的那样,旅途非常尬。如今,铁路修好了,因此人们可以坐火车来到兔子镇。有一个问题就是怎么划分车厢——大家都希望能够单独一个车厢,但在大部分情况下这是做不到的。
火车上有个乘客,坐在第
位的乘客对车厢的划分有一个意愿值
,我们定义一节车厢的总意愿值为这节车厢所有人意愿值的异或和,即,如果这节车厢包含了第
名乘客,那么这节车厢的意愿值是
.特别地,如果这节车厢只有一名乘客
,那么这节车厢的意愿值就是
.这个意愿值当然越高越好,但是这会让当局非常难办,因此他们确定了一个标准
,
的范围介于所有可能出现的意愿值之间。现在的任务就是让尽可能多的车厢的意愿值为
.
题目对Chino来说太难啦,你能帮一帮Chino吗?
第一行是两个数n, k;接下来一行是n个数ai
题目中要求的答案