#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const ll nl=1e18;
/*
题意:由0和1组成的一串数,题目保证两个1之间有大于k个0,问最多能再添加多少个1(每两个1之间必须有至少k个0)
*/
int main()
{
speed_up;
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
string s;
cin>>s;
int j=0,is=0,p=0,sum=0;
for(int i=0;i<s.size();i++)
{
j++;
if(s[i]=='1')
{
is=1;//判断全为0情况
p++;//第几个1
if(p==1)
{
sum+=(j-1)/(k+1);//第一个1前面的0除以周期数k+1
}
else
{
sum+=(j-k-1)/(k+1);//第一个1往后的两个1之间的0
}
j=0;
}
}
if(is==0)cout<<1+(n-1)/(k+1)<<endl;//全为0情况,第一个为1,往后周期数为k+1
else
{
sum+=j/(k+1);//最后一个1后面的0
cout<<sum<<endl;
}
}
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const ll nl=1e18;
/*
题意:由0和1组成的一串数,题目保证两个1之间有大于k个0,问最多能再添加多少个1(每两个1之间必须有至少k个0)
*/
int main()
{
speed_up;
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
string s;
cin>>s;
int j=0,is=0,p=0,sum=0;
for(int i=0;i<s.size();i++)
{
j++;
if(s[i]=='1')
{
is=1;//判断全为0情况
p++;//第几个1
if(p==1)
{
sum+=(j-1)/(k+1);//第一个1前面的0除以周期数k+1
}
else
{
sum+=(j-k-1)/(k+1);//第一个1往后的两个1之间的0
}
j=0;
}
}
if(is==0)cout<<1+(n-1)/(k+1)<<endl;//全为0情况,第一个为1,往后周期数为k+1
else
{
sum+=j/(k+1);//最后一个1后面的0
cout<<sum<<endl;
}
}
}