#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int k;
cin >> k;
string g;
cin >> g;
int count = 0;
unordered_map<int, int> b;
int p = 1;
while (p <= 9)
{
int t = p * k; // 1*k = 1k , 2*k =2k ...till it will go till 10k
if (t > n)
{
break;
}
b.clear(); // clear the frequency map for new window size or else it will get carry forward
for (int i = 0; i <= n - 1; i++)
{
if (i < t - 1)
{
//convert character to integer
int number = g[i] - '0';
b[number] = b[number] + 1; // basically we are storing in map
}
else
{
//-------------jaise hee 'k' index pe aata Hu 'k' wala add kar deta hu -----------------------
// convert the character to integer
int number = g[i] - '0';
b[number] = b[number] + 1;
//--------------------------------
int l = 0;
int u = 0;
while (l <= 9)
{
if (b[l] == k || b[l] == 0)
{
// valid substring
}
else
{
u = 1;
break;
}
l = l + 1;
}
if (u == 0)
{
count = count + 1;
}
//-----------uske just piche wala nikkal deta hu ...matlab window size 'k' maintain rehega proper answer aayega -----------------
int y = g[i - t + 1] - '0';
b[y] = b[y] - 1;
//-----------------------------
}
}
p++;
}
cout << count;
}
CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSAKewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIAogICAgaW50IGs7CiAgICBjaW4gPj4gazsKICAgIAogICAgc3RyaW5nIGc7CiAgICBjaW4gPj4gZzsKICAgIAogICAgaW50IGNvdW50ID0gMDsKICAgIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IGI7CiAgICAKICAgIGludCBwID0gMTsKICAgIHdoaWxlIChwIDw9IDkpCiAgICB7CiAgICAgICAgaW50IHQgPSBwICogazsgLy8gMSprID0gMWsgLCAyKmsgPTJrIC4uLnRpbGwgaXQgd2lsbCBnbyB0aWxsIDEwawogICAgICAgIAogICAgICAgIGlmICh0ID4gbikKICAgICAgICB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBiLmNsZWFyKCk7IC8vIGNsZWFyIHRoZSBmcmVxdWVuY3kgbWFwIGZvciBuZXcgd2luZG93IHNpemUgb3IgZWxzZSBpdCB3aWxsIGdldCBjYXJyeSBmb3J3YXJkIAogICAgICAgIAogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG4gLSAxOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAoaSA8IHQgLSAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvL2NvbnZlcnQgY2hhcmFjdGVyIHRvIGludGVnZXIKICAgICAgICAgICAgICAgIGludCBudW1iZXIgPSBnW2ldIC0gJzAnOwogICAgICAgICAgICAgICAgYltudW1iZXJdID0gYltudW1iZXJdICsgMTsgLy8gYmFzaWNhbGx5IHdlIGFyZSBzdG9yaW5nIGluIG1hcCAKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLWphaXNlIGhlZSAnaycgaW5kZXggcGUgYWF0YSBIdSAnaycgd2FsYSBhZGQga2FyIGRldGEgaHUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgdGhlIGNoYXJhY3RlciB0byBpbnRlZ2VyCiAgICAgICAgICAgICAgICBpbnQgbnVtYmVyID0gZ1tpXSAtICcwJzsKICAgICAgICAgICAgICAgIGJbbnVtYmVyXSA9IGJbbnVtYmVyXSArIDE7CiAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGludCBsID0gMDsKICAgICAgICAgICAgICAgIGludCB1ID0gMDsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgd2hpbGUgKGwgPD0gOSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoYltsXSA9PSBrIHx8IGJbbF0gPT0gMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIHN1YnN0cmluZyAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBsID0gbCArIDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmICh1ID09IDApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY291bnQgPSBjb3VudCArIDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS11c2tlIGp1c3QgcGljaGUgd2FsYSBuaWtrYWwgZGV0YSBodSAuLi5tYXRsYWIgd2luZG93IHNpemUgJ2snIG1haW50YWluIHJlaGVnYSBwcm9wZXIgYW5zd2VyIGFheWVnYSAtLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICAgaW50IHkgPSBnW2kgLSB0ICsgMV0gLSAnMCc7CiAgICAgICAgICAgICAgICBiW3ldID0gYlt5XSAtIDE7CiAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcCsrOwogICAgfQogICAgCiAgICBjb3V0IDw8IGNvdW50Owp9Cg==