#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define flow ios_base::sync_with_stdio(false);cin.tie(NULL);
int n,k,dp[1000001][2],*a;
string s;
int pre_sum(int l,int r)
{
if(r<0)return 0;
if(r>=n)r=n-1;
return a[r]-((l-1>=0)?a[l-1]:0);
}
int fn(int pos,int off)
{
if(pos>=n)return 0;
if(dp[pos][off]!=-1)return dp[pos][off];
int ans1=pre_sum(pos+1,pos+k-1);
if(!off)
{
if(s[pos]=='0')ans1+=min(1+fn(pos+k,0),fn(pos+k,1));
else ans1+=min(fn(pos+k,0),1+fn(pos+k,1));
}
else
{
if(s[pos]=='0')ans1+=fn(pos+k,1);
else ans1+=1+fn(pos+k,1);
}
return (dp[pos][off]=ans1);
}
int main()
{
flow;
int t;cin>>t;
while(t--)
{
cin>>n>>k>>s;
a=new int[n];
for(int i=0;i<n;i++)
{ dp[i][0]=dp[i][1]=-1;
a[i]=0;
}
a[0]=((s[0]=='1')?1:0);
for(int i=1;i<n;i++)
{
if(s[i]=='1')a[i]=1+a[i-1];
else a[i]=a[i-1];
}
int ans=INT_MAX;
for(int i=0;i<n;i++)
if(s[i]=='1')ans=min(ans,pre_sum(0,i-1)+fn(i,0));
cout<<((ans==INT_MAX)?0:ans)<<endl;
}
return 0;
}
ICAgICNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogICAgdHlwZWRlZiBsb25nIGxvbmcgbGw7CiAgICAjZGVmaW5lIGZsb3cgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7Y2luLnRpZShOVUxMKTsKICAgIGludCBuLGssZHBbMTAwMDAwMV1bMl0sKmE7CiAgICBzdHJpbmcgczsKICAgIGludCBwcmVfc3VtKGludCBsLGludCByKQogICAgewogICAgICAgIGlmKHI8MClyZXR1cm4gMDsKICAgICAgICBpZihyPj1uKXI9bi0xOwogICAgICAgIHJldHVybiBhW3JdLSgobC0xPj0wKT9hW2wtMV06MCk7CiAgICB9CiAgICBpbnQgZm4oaW50IHBvcyxpbnQgb2ZmKQogICAgewogICAgICAgIGlmKHBvcz49bilyZXR1cm4gMDsKICAgICAgICBpZihkcFtwb3NdW29mZl0hPS0xKXJldHVybiBkcFtwb3NdW29mZl07CiAgICAgICAgaW50IGFuczE9cHJlX3N1bShwb3MrMSxwb3Mray0xKTsKICAgICAgICBpZighb2ZmKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihzW3Bvc109PScwJylhbnMxKz1taW4oMStmbihwb3MraywwKSxmbihwb3MraywxKSk7CiAgICAgICAgICAgICAgICBlbHNlIGFuczErPW1pbihmbihwb3MraywwKSwxK2ZuKHBvcytrLDEpKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoc1twb3NdPT0nMCcpYW5zMSs9Zm4ocG9zK2ssMSk7CiAgICAgICAgICAgICAgICBlbHNlIGFuczErPTErZm4ocG9zK2ssMSk7CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gKGRwW3Bvc11bb2ZmXT1hbnMxKTsKICAgIH0KICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICBmbG93OwogICAgICAgIGludCB0O2Npbj4+dDsKICAgICAgICB3aGlsZSh0LS0pCiAgICAgICAgewogICAgICAgICAgICBjaW4+Pm4+Pms+PnM7CiAgICAgICAgICAgIGE9bmV3IGludFtuXTsKICAgICAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICAgICAgICAgeyAgIGRwW2ldWzBdPWRwW2ldWzFdPS0xOwogICAgICAgICAgICAgICAgYVtpXT0wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGFbMF09KChzWzBdPT0nMScpPzE6MCk7CiAgICAgICAgICAgIGZvcihpbnQgaT0xO2k8bjtpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYoc1tpXT09JzEnKWFbaV09MSthW2ktMV07CiAgICAgICAgICAgICAgICAgICAgZWxzZSBhW2ldPWFbaS0xXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgaW50IGFucz1JTlRfTUFYOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgICAgICAgICAgICAgaWYoc1tpXT09JzEnKWFucz1taW4oYW5zLHByZV9zdW0oMCxpLTEpK2ZuKGksMCkpOwogICAgICAgICAgICBjb3V0PDwoKGFucz09SU5UX01BWCk/MDphbnMpPDxlbmRsOwogICAgICAgIH0KICAgIAlyZXR1cm4gMDsKICAgIH0=