#547. 我愿相信由你所描述的童话

我愿相信由你所描述的童话

题意描述

定义两个 01 串 S,TS,T 满足 STS\rightarrow T 当且仅当 SS 中值为 11 的下标集合是 TT 中值为 11 的下标集合的子集,定义 STS\leftarrow T 当且仅当 TST\rightarrow S

小诗有一个长为 nn 的 01 串序列 s1,s2,,sns_1,s_2,\cdots,s_n ,其中每个 01 串长度为 mm ,她想知道有多少子序列 1p1<p2<<pkn1\leqslant p_1<p_2<\cdots<p_k\leqslant n ,使得存在 1tk1\leqslant t\leqslant k 满足 $s_{p_1}\rightarrow s_{p_2}\rightarrow\cdots\rightarrow s_{p_t}\leftarrow s_{p_{t+1}}\leftarrow\cdots\leftarrow s_{p_k}$ 。

由于答案过大,你只需告诉她答案 mod109+7\bmod 10^9+7 的值。

输入格式

第一行两个正整数 n,mn,m

第二行 nn 个非负整数,第 ii 个数表示 sis_i 的十进制表示,我们定义一个二进制串 s1,2,,ms_{1,2,\cdots,m} 的十进制表示为 i=1msi2i1\sum_{i=1}^{m} s_i2^{i-1}

输出格式

一行一个非负整数,表示答案。

样例

样例输入 #1

4 2
0 3 2 1

样例输出 #1

11

样例解释 #1

子序列 $\{1\},\{2\},\{3\},\{4\},\{1,2\},\{2,3\},\{1,3\},\{2,4\},\{1,4\},\{1,2,3\},\{1,2,4\}$ 均合法。

样例 2~5 见下发文件。

数据范围

对于所有测试点,保证 $1\leqslant n\leqslant 3\times 10^5,1\leqslant m\leqslant 20$ 。

请注意,本题大多数算法常数较小,因此出题人给出的数据范围较大。

测试点编号 $n\leqslant$ $m\leqslant$
1 $1000$
2 $5\times 10^4$
3 $10$
4 $10$
5 $15$
6 $16$
7 $17$
8 $18$
9 $19$
10 $20$