#CF2066D1. 青年飞机制造者俱乐部(简单版本)

青年飞机制造者俱乐部(简单版本)

D1. 青年飞机制造者俱乐部(简单版本)

每个测试点的时间限制:44
每个测试点的内存限制:10241024 兆字节

这是该问题的简单版本。两个版本的区别在于,在这个版本中,所有的 ai=0a_i = 0。只有解决了所有版本的问题,你才能进行 Hack。

有一栋 nn 层的建筑,楼层从下到上编号为 11nn。每层恰好住着一个人。

今天所有居民有一个非常重要的目标:总共要发射至少 cc 架纸飞机。居民们会轮流发射飞机。当第 ii 层的居民发射一架飞机时,从第 11 层到第 ii 层的所有居民都能看到它飞向地面。

如果从第 ii 层居民的角度来看,已经有至少 cc 架飞机被发射,那么他们自己就不会再发射任何飞机。此外,到一天结束时,从楼里每个居民的角度来看,至少已经有 cc 架飞机被发射,并且总共发射了 mm 架飞机。

你仔细监视了这次快闪活动,并记录了每架飞机是由哪一层的居民发射的。不幸的是,某些飞机具体由谁发射的信息丢失了。请找出填补这些空缺的方案数,使得记录是可信的。由于答案可能很大,请输出它对 109+710^9+7 取模的结果。

在这个版本的题目中,所有信息都丢失了,整个数组由空缺组成。

也有可能你在记录中犯了错误,导致无法恢复空缺。在这种情况下,答案被认为是 00


输入
每个测试包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。

每个测试用例的第一行包含三个整数 n,c,mn, c, m1n1001 \le n \le 1001c1001 \le c \le 100cmncc \le m \le n \cdot c)——建筑的层数、最少需要的飞机数,以及实际发射的飞机总数。

每个测试用例的第二行包含 mm 个整数 a1,a2,,ama_1, a_2, \dots, a_m0ain0 \le a_i \le n)—— aia_i 表示发射第 ii 架飞机的居民所在的楼层;ai=0a_i = 0 表示空缺。

在这个版本中,保证所有 ai=0a_i = 0

保证所有测试用例的 mm 之和不超过 10410^4


输出
对于每个测试用例,输出用 11nn 的数字填补空缺的方案数,使得飞机发射的时间顺序是可信的,结果对 109+710^9+7 取模。


示例
输入

2
3 2 4
0 0 0 0
5 5 7
0 0 0 0 0 0 0

输出

6
190

注意
在第一个测试用例中,所有 66 种可能的填补方式如下:

[1,1,3,3][1,1,3,3]
[1,2,3,3][1,2,3,3]
[1,3,2,3][1,3,2,3]
[2,1,3,3][2,1,3,3]
[2,2,3,3][2,2,3,3]
[3,1,2,3][3,1,2,3]

注意,数组 [2,3,1,3][2,3,1,3] 不是有效的填补方式,因为第 33 架飞机不可能由第 11 层的人发射(从他们的视角看,已经有 c=2c=2 架飞机发射过了)。

另外,数组 [1,1,2,3][1,1,2,3] 也不是有效的填补方式,因为从第 33 层居民的角度看,只发射了 11 架飞机,而 c=2c=2