#include<cstdio>
#include<cstring>
typedef long long ll;
using namespace std;
char str[1000005];
int main()
{
int T,k,t;
ll ans;
scanf("%d",&T);
int vis[30];
int l,r,flag,len;
while(T--)
{
scanf("%s%d",str,&k);
l=r=0;//初始化左右指针
flag=0;
ans=0;
len=strlen(str);
memset(vis,0,sizeof(vis));
while(l<=len-k)
{
while(flag<k&&r<len)
{
t=str[r]-'a';
if(!vis[t])
flag++;//当前已有flag个不同字符
vis[t]++;
r++;
}//寻找以l为起点的最小子串
if(flag==k)
ans+=len-r+1;//包含最小子串的子串都满足条件
t=str[l]-'a';
vis[t]--;
if(!vis[t])
flag--;
l++;//起点右移
}
printf("%lld\n",ans);
}
return 0;
}