#CF2140E1. 质数游戏(简单版本)

质数游戏(简单版本)

本题为简单版本,与困难版本的区别是:简单版本中 m2m\le 2。 只有当你通过本题所有版本时,才可以进行 Hack。

定义合法局面:有 nn 堆石子,满足: 每堆石子数量为 1m1\sim m 之间的整数(包含边界)。

给定一个合法石子局面,将 1n1\sim n 中某些下标标记为好下标

Alice 和 Bob 进行游戏: 共进行 n1n-1 轮操作,两人轮流行动,Alice 先手。 每一轮必须执行如下操作: 设当前剩余 pp 堆石子,选择满足 1ip1\le i\le pii 是好下标的位置 ii彻底移除第 ii

注意:每次移除一堆后,总堆数减 11,剩余石子堆会重新从 11 开始编号。 游戏直到只剩最后一堆时结束。 题目保证:下标 11 永远是好下标。

设最后剩下那一堆的石子数量为 xx

  • Alice 目标:最大化 xx
  • Bob 目标:最小化 xx 两人均采取最优策略。

所有可能的合法局面对应的最终 xx 之和,答案对 109+710^9+7 取模。


输入格式

多组测试用例。 第一行一个整数 tt1t1041\le t\le 10^4),表示测试组数。

每组测试用例:

  1. 一行两个整数 n,mn,m1n20, 1m21\le n\le 20,\ 1\le m\le 2),分别是石子堆数、每堆石子数上界。
  2. 一行一个整数 kk1kn1\le k\le n),表示被标记为好下标的数量。
  3. 一行 kk 个整数 c1,c2,,ckc_1,c_2,\dots,c_k,满足 1=c1<c2<<ckn1=c_1<c_2<\dots<c_k\le n,为所有好下标。 保证下标 11 一定是好下标。

额外限制:

  • 所有测试用例的 2n2^n 之和不超过 2202^{20}
  • 所有测试用例的 mm 之和不超过 10610^6

输出格式

对每组测试用例,输出所有合法局面最终 xx 的总和,对 109+710^9+7 取模。


样例输入

3
2 2
1
1
3 1
2
1 3
3 2
2
1 2

样例输出

6
1
11

样例说明

  1. 第一组: 合法局面有:[1,1],[1,2],[2,1],[2,2][1,1],[1,2],[2,1],[2,2]。 共 22 堆石子,Alice 只能选第 11 堆移除,最后剩下第二堆。 总和:1+1+2+2=61+1+2+2 = 6

  2. 第二组: 每堆石子只能是 11,最终 xx 恒为 11,总和为 11