#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
typedef vector<int> vi;
#define F first;
#define S second;
#define sz(x) x.size()
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define allr(x) (x).rbegin(), (x).rend()
#define pb push_back
#define endl "\n"
#define YES cout << "YES\n"
#define NO cout << "NO\n"
void solve() {
ll n, k; cin >> n >> k;
ll wh = 0;
string s; cin >> s;
s += '1';
vector<ll> vp, vp2;
ll l = 0;
set<char> se;
for (int i = 0; i < n; i++) {
se.insert(s[i]);
}
if (sz(se) == 1) {
cout << 0 << endl;
return;
}
for (int i = 0; i < n; i++) {
if (s[i] == '1' && s[i + 1] == '0') l = i + 1;
if (s[i] == '0' && s[i + 1] == '1') {
ll si = i - l + 1;
if (l != 0 && i != n - 1) {
wh += 2;
vp.pb(si);
} else {
wh += 1;
vp2.pb(si);
}
}
}
sort(all(vp));
sort(all(vp2));
for (auto e : vp) {
if (k >= e) {
k -= e;
wh -= 2;
}
}
for (auto e : vp2) {
if (k >= e) {
k -= e;
wh -= 1;
}
}
cout << wh << endl;
}
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
freopen("strips.in", "r", stdin);
//freopen("wtf.out", "w", stdout);
int t = 1;
cin >> t;
while(t--) {
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBsbCBsb25nIGxvbmcKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKI2RlZmluZSBGIGZpcnN0OwojZGVmaW5lIFMgc2Vjb25kOwojZGVmaW5lIHN6KHgpIHguc2l6ZSgpCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCAoeCkuZW5kKCkKI2RlZmluZSByYWxsKHgpICh4KS5yYmVnaW4oKSwgKHgpLnJlbmQoKQojZGVmaW5lIGFsbHIoeCkgKHgpLnJiZWdpbigpLCAoeCkucmVuZCgpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZW5kbCAiXG4iCiNkZWZpbmUgWUVTIGNvdXQgPDwgIllFU1xuIgojZGVmaW5lIE5PIGNvdXQgPDwgIk5PXG4iCgp2b2lkIHNvbHZlKCkgewogICAgbGwgbiwgazsgY2luID4+IG4gPj4gazsKICAgIGxsIHdoID0gMDsKICAgIHN0cmluZyBzOyBjaW4gPj4gczsKICAgIHMgKz0gJzEnOwogICAgdmVjdG9yPGxsPiB2cCwgdnAyOwogICAgbGwgbCA9IDA7CiAgICBzZXQ8Y2hhcj4gc2U7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHNlLmluc2VydChzW2ldKTsKICAgIH0gICAKICAgIGlmIChzeihzZSkgPT0gMSkgewogICAgICAgIGNvdXQgPDwgMCA8PCBlbmRsOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaWYgKHNbaV0gPT0gJzEnICYmIHNbaSArIDFdID09ICcwJykgbCA9IGkgKyAxOwogICAgICAgIGlmIChzW2ldID09ICcwJyAmJiBzW2kgKyAxXSA9PSAnMScpIHsKICAgICAgICAgICAgbGwgc2kgPSBpIC0gbCArIDE7CiAgICAgICAgICAgIGlmIChsICE9IDAgJiYgaSAhPSBuIC0gMSkgewogICAgICAgICAgICAgICAgd2ggKz0gMjsKICAgICAgICAgICAgICAgIHZwLnBiKHNpKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHdoICs9IDE7CiAgICAgICAgICAgICAgICB2cDIucGIoc2kpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgc29ydChhbGwodnApKTsKICAgIHNvcnQoYWxsKHZwMikpOwogICAgZm9yIChhdXRvIGUgOiB2cCkgewogICAgICAgIGlmIChrID49IGUpIHsKICAgICAgICAgICAgayAtPSBlOwogICAgICAgICAgICB3aCAtPSAyOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoYXV0byBlIDogdnAyKSB7CiAgICAgICAgaWYgKGsgPj0gZSkgewogICAgICAgICAgICBrIC09IGU7CiAgICAgICAgICAgIHdoIC09IDE7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCB3aCA8PCBlbmRsOwp9CgoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOwogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgICAgICBmcmVvcGVuKCJpbi50eHQiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJvdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgI2VuZGlmCiAgICBmcmVvcGVuKCJzdHJpcHMuaW4iLCAiciIsIHN0ZGluKTsKICAgIC8vZnJlb3Blbigid3RmLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwoKICAgIHdoaWxlKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9Cn0=