#CF2070C. 有限次涂色

有限次涂色

C. 有限次涂色
每个测试点的时间限制:22
每个测试点的内存限制:512512 兆字节

有一条由 nn 个格子组成的条带,初始时所有格子都是红色。

在一次操作中,你可以选择一段连续的格子并将它们涂成蓝色。涂色之前,选中的格子可以是红色或蓝色。注意:不可以将它们涂成红色。
你最多可以执行 kk 次操作(可以为零次)。

对于每个格子,最终期望的颜色已指定:红色(R)或蓝色(B)。
显然,在 kk 次操作内不一定能满足所有格子的要求。因此,对每个格子还指定了一个惩罚值:如果最终颜色是错误的,就应用这个惩罚。
ii 个格子的惩罚是 aia_i

最终涂色的代价定义为:所有颜色错误的格子中,惩罚值的最大值。如果没有颜色错误的格子,代价为 00

问:能够达到的最小代价是多少?


输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试数据的组数。

每组测试数据的第一行包含两个整数 nnkk1n31051 \le n \le 3 \cdot 10^50kn0 \le k \le n)——条带的长度和最大操作次数。

第二行包含一个由 nn 个字符 R 和/或 B 组成的字符串 ssR 表示该格子最终应是红色,B 表示应是蓝色。

第三行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9)——每个格子的惩罚值。

所有测试数据的 nn 之和不超过 31053 \cdot 10^5


输出
对于每组测试数据,输出一行一个整数——能够达到的最小代价。


示例
输入

5
4 1
BRBR
9 3 5 4
4 1
BRBR
9 5 3 4
4 2
BRBR
9 3 5 4
10 2
BRBRBBRRBR
5 1 2 4 5 3 6 1 5 4
5 5
RRRRR
5 3 1 2 4

输出

3
3
0
4
0

注意

  • 第一个测试数据:可以涂色第 1133 个格子。涂色后为 BBBR,只有第 22 个格子颜色错误,其惩罚为 33,因此最终代价为 33
  • 第二个测试数据:涂色 BBBR 会得到代价 55。但如果涂色第 11 到第 11 个格子,结果为 BRRR,只有第 33 个格子颜色错误,惩罚为 33,因此最终代价为 33
  • 第三个测试数据:可以涂色第 11 到第 11 个格子和第 33 到第 33 个格子,所有格子颜色正确,代价为 00
  • 第四个测试数据:略。
  • 第五个测试数据:所有目标都是红色,不需要任何涂色,代价为 00