2339 - 中位数统计mid
描述

x有一个 二进制 数组^{\text{∗}}a,长度为 n

他将取出该数组中所有长度为 k 的子序列^{\text{†}}k 为奇数),并找到它们的中位数。^{\text{‡}}

这些值的总和是多少?

由于这个总和可能非常大,请输出它对 10^9 + 7的模。换句话说,打印这个总和除以 100,019的余数。

^{\text{∗}}a二进制数组是仅由01组成的数组。

数组 b 是数组a 的一个子序列,如果 b可以通过删除数组 a中的若干(可能是零个或全部)元素得到。子序列 不 必须是连续的。

^{\text{‡}}长度为奇数的数组 k的中位数是排序后第 \frac{k+1}{2}个元素。


输入

第一行包含一个整数t(\leq t \leq 10^4) — 测试用例的数量。

每个测试用例的第一行包含两个整数 n k (\leq k \leq n \leq 2 \cdot 10^5, k为奇数) — 数组的长度和子序列的长度。

每个测试用例的第二行包含 n 个整数 (0 \leq a_i \leq 1) — 数组的元素。

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


输出

对于每个测试用例,打印总和对 10^9 + 7的模。


样例

输入

8
4 3
1 0 0 1
5 1
1 1 1 1 1
5 5
0 1 0 1 0
6 3
1 0 1 0 1 1
4 3
1 0 1 1
5 3
1 0 1 1 0
2 1
0 0
34 17
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

输出

2
5
0
16
4
7
0
333606206
提示

在第一个测试用例中,有四个长度为k=3[1,0,0,1] 的子序列:

-   [1,0,0]: 中位数 =0

-   [1,0,1]: 中位数 =1

[1,0,1]: 中位数 =1

[0,0,1]: 中位数 =0

结果的总和是 0+1+1+0=2

在第二个测试用例中,所有长度为 111 的子序列的中位数为 111,所以答案是 555。

数据范围:

40%数据:t(\leq t \leq 10,1\leq k \leq n \leq 30) ,k是奇数

100%数据:t(\leq t \leq 10^4,1\leq k \leq n \leq  2 \cdot 10^5) ,k是奇数

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


题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 3
通过次数 1