#include <bits/stdc++.h>
using namespace std;
int get(char a, char b, char c) {
int ret = 0;
if (a != 'a') ret += 'z' - a + 1;
if (b <= 'b') ret += 'b' - b;
else ret += 'z' - b + 2;
if (c <= 'c') ret += 'c' - c;
else ret += 'z' - c + 3;
return ret;
}
void solve(int cs) {
int n, k;
cin >> n >> k;
string s;
cin >> s;
k = min(k, n * 23);
vector<vector<int>> dp(4, vector<int>(k + 1, 0));
int ans = 0;
for (int i = 2; i < n; i++) {
for (int j = 0; j <= k; j++) {
int ni = i >> 2;
int ops = get(s[i - 2], s[i - 1], s[i]);
if (j) dp[ni][j] = max(dp[ni][j], dp[ni][j - 1]);
dp[ni][j] = max(dp[ni][j], dp[(ni - 1 + 4) >> 2][j]);
if (j >= ops) {
if (i == 2) dp[ni][j] = max(dp[ni][j], 1);
else {
dp[ni][j] = max(dp[ni][j], dp[(ni - 3 + 4) >> 2][j - ops] + 1);
}
}
ans = max(ans, dp[ni][j]);
}
}
cout << ans << "\n";
}
int32_t main() {
cin.tie(0) -> sync_with_stdio(0);
int t = 1;
cin >> t;
for (int i = 1; i <= t; i++) {
solve(i);
}
return 0;
}