#CF2131G. Wafu!

    ID: 7047 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>数据结构搜索组合数学枚举动态规划其他位运算*2000

Wafu!

G. Wafu!

每次测试的时间限制:33
每次测试的内存限制:256256 兆字节

为了帮助提高数学成绩,Kudryavka 得到了一个包含 nn 个互不相同的正整数的集合 SS

最初,她的分数为 11。在集合非空的情况下,她可以执行任意次以下操作:

  • SS 中的最小值为 mm
  • 将她的分数乘以 mm
  • SS 中移除 mm
  • 对每个满足 1i<m1 \le i < m 的整数 ii,将 ii 加入集合 SS。可以证明在这一步中不会添加重复的元素。

她沉迷于执行操作,但在执行了 kk 次操作之后,她忘记了她的分数。请帮助她求出她的分数,并对 109+710^9+7 取模。


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

每个测试用例的第一行包含两个整数 nnkk1n21051 \le n \le 2 \cdot 10^51k1091 \le k \le 10^9)。

第二行包含 nn 个整数 s1,s2,,sns_1, s_2, \dots, s_n1si1091 \le s_i \le 10^9sisjs_i \ne s_j)——初始集合 SS 中的元素。保证在每次操作执行前集合 SS 非空。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,输出一个整数,表示答案对 109+710^9+7 取模后的结果。


示例

输入

4
2 3
1 3
3 6
5 1 4
2 100
2 100
5 15
1 2 3 4 5

输出

3
24
118143737
576

说明

模拟第一个测试用例的过程:

初始集合 {1,3}\{1,3\}

  • 移除 11,加入 11 以下的数(无),集合变为 {3}\{3\},分数乘 1111
  • 移除 33,加入 1,21,2,集合变为 {1,2}\{1,2\},分数乘 3333
  • 移除 11,加入 11 以下的数(无),集合变为 {2}\{2\},分数乘 1133

被移除的数依次为 1,3,11,3,1,所以分数为 1×3×1=31 \times 3 \times 1 = 3

第二个测试用例:分数为 $1 \times 4 \times 1 \times 2 \times 1 \times 3 = 24$。