字符串
题号:NC259247
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

一个长度为  的只包含字符  的字符串,给出一个整数 最多可以对字符串执行  次操作。

每次操作选择一个下标 i\ (1\le i\le n),将字符串 [1,i],[i+1,n] 反转。

比如 ,第一次操作选择下标 ,操作后字符串变成 ,第二次操作选择下标 ,操作后字符串变成 

特别的,如果选择了下标 ,直接将整个字符串反转即可。

问:最多执行  次操作(也可以一次都不执行),在完成操作后,字符串的子序列 “” 的个数最多有多少个?

输入描述:

第一行一个整数 ,表示样例的个数。

每个样例包含两行,第一行包含两个整数 ,分别表示字符串的长度,操作的次数。

第二行包含一个长度为  的字符串 

数据保证 

输出描述:

输出  行,每行一个整数,表示第  个字符串经过操作后,最多可以得到子序列 "" 的个数。
示例1

输入

复制
2
7 10
ccaaabc
3 1
aca

输出

复制
9
0

说明

第一个样例:第一次操作选择下标 ,字符串变成 ,第二次操作选择下标 ,字符串变成 ,一共包含  个子序列 

第二个样例无论怎么操作都不包含子序列 ,输出 

备注: