#C2026XSR3C. 异或(xor)

异或(xor)

异或(xor)

题目描述

苗苗整理了一段能量记录。记录由 nn 个能量片组成,第 ii 个能量片上写着一个非负整数 aia_i

苗苗需要把这段记录从左到右划分成若干个非空连续片段。对于一个片段,它的校验值定义为片段中所有数的按位异或和。为了让每个片段都能被稳定保存,苗苗要求每个片段的校验值都不超过 kk

苗苗想知道,一共有多少种不同的划分方案。两种方案不同,当且仅当存在一个位置,在其中一种方案中被切开,而在另一种方案中没有被切开。

输入格式

第一行两个整数 n,kn,k

第二行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n

输出格式

输出一行一个整数,表示答案对 109+710^9+7 取模的结果。

数据范围

对于全部的数据,满足 1n2×1051\le n\le 2\times 10^50ai,k<2300\le a_i,k<2^{30}

测试点编号 nn\le 特殊性质
11 2020
232\sim 3 30003000
464\sim 6 2×1052\times 10^5 0ai,k<280\le a_i,k<2^8
7107\sim 10

样例文件