小 R有一个长度为n的非负整数序列 a1,a2,…..,an。定义一个区间[l,r](1≤l≤r< n)的权值为 al, al+1,.….,ar, 的二进制按位异或和,即al Φal+1Ф·…Фa~r,其中 田 表示二进制按位异或。 小X给了小R一个非负整数k。小希望小R选择序列中尽可能多的不相交的区间,使得每个区间的权值均为k。两个区间[l1,r1],[l2,r2]相交当且仅当两个区间同时包含至少一个相同的下标,即存在 1≤i≤n 使得 l≤i≤ri 且 l≤i≤ r2。 例如,对于序列[2,1,0,3],若k=2,则小 R可以选择区间[1,1]和区间[2,4,权值分别为2和1Ф 0 Ф 3=2;若k=3,则小R可以选择区间[1,2]和区间[4,4],权值分别为1Ф2=3和3。 你需要帮助小R求出他能选出的区间数量的最大值。
输入的第一行包含两个非负整数n,k,分别表示小R的序列长度和小X给小R的非负整数。 输入的第二行包含n个非负整数a1,a2,...,an,表示小R的序列。
输出一行一个非负整数,表示小R能选出的区间数量的最大值。
4 2 2 10 3
2
4 3 2 1 0 3
2
4 0 2 1 0 3
1
样例解释1 小R可以选择区间[1,1]和区间[2,4],异或和分别为2和1 Ф 0 Ф 3=2。可以证明,小R能选出的区间数量的最大值为2.
样例解释2 小R可以选择区间[1,2]和区间[4,4],异或和分别为1Ф2=3和3。可以证明,小R能选出的区间数量的最大值为2。
样例解释3 小R可以选择区间[3,3],异或和为0。可以证明,小R能选出的区间数量的最大值为 1。注意:小R不能同时选择区间3,3 和区间[1,4,因为这两个区间同时包含下标 3。