#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld double
const int nax=1e5+5;
ll ans=0;
int n,k;
string s;
class node{
public :
int val;
node** child;
node(){
val=0;
child=new node*[26];
for(int i=0;i<26;i++){
child[i]=NULL;
}
}
};
class trie{
public :
node* root;
trie(){
root=new node;
}
void insert(node* cn, int index){
if(index==s.size()) return ;
int pos=s[index]-'A';
if(cn->child[pos]==NULL){
node* temp=new node;
cn->child[pos]=temp;
}
cn->child[pos]->val++;
insert(cn->child[pos],index+1);
}
int dfs(node * cn, int lev){
int r=0;
if(cn==NULL) return 0;
for(int i=0;i<26;i++){
if(cn->child[i] == NULL) continue;
r+=dfs(cn->child[i],lev+1);
}
cn->val-=r;
ans+=(cn->val/k)*lev;
return r+(cn->val/k)*k;
}
};
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int tt;
cin>>tt;
int ty=1;
while(tt--){
ans=0;
cin>>n>>k;
trie obj;
for(int i=0;i<n;i++){
cin>>s;
obj.insert(obj.root,0);
}
int faltu=obj.dfs(obj.root,0);
cout<<"Case #"<<ty++<<": "<<ans<<'\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgZG91YmxlCmNvbnN0IGludCBuYXg9MWU1KzU7CmxsIGFucz0wOwppbnQgbixrOwpzdHJpbmcgczsKCmNsYXNzIG5vZGV7CiAgICBwdWJsaWMgOiAKICAgIGludCB2YWw7CiAgICBub2RlKiogY2hpbGQ7CiAgICBub2RlKCl7CiAgICAgICAgdmFsPTA7CiAgICAgICAgY2hpbGQ9bmV3IG5vZGUqWzI2XTsKICAgICAgICBmb3IoaW50IGk9MDtpPDI2O2krKyl7CiAgICAgICAgICAgIGNoaWxkW2ldPU5VTEw7CiAgICAgICAgfQogICAgfQp9OwpjbGFzcyB0cmllewogICAgcHVibGljIDoKICAgIG5vZGUqIHJvb3Q7CiAgICB0cmllKCl7CiAgICAgICAgcm9vdD1uZXcgbm9kZTsKICAgIH0KICAgIHZvaWQgaW5zZXJ0KG5vZGUqIGNuLCBpbnQgaW5kZXgpewogICAgICAgIGlmKGluZGV4PT1zLnNpemUoKSkgcmV0dXJuIDsKICAgICAgICBpbnQgcG9zPXNbaW5kZXhdLSdBJzsKICAgICAgICBpZihjbi0+Y2hpbGRbcG9zXT09TlVMTCl7CiAgICAgICAgICAgIG5vZGUqIHRlbXA9bmV3IG5vZGU7CiAgICAgICAgICAgIGNuLT5jaGlsZFtwb3NdPXRlbXA7CiAgICAgICAgfQogICAgICAgIGNuLT5jaGlsZFtwb3NdLT52YWwrKzsKICAgICAgICBpbnNlcnQoY24tPmNoaWxkW3Bvc10saW5kZXgrMSk7CiAgICB9CiAgICBpbnQgZGZzKG5vZGUgKiBjbiwgaW50IGxldil7CiAgICAgICAgaW50IHI9MDsKICAgICAgICBpZihjbj09TlVMTCkgcmV0dXJuIDA7CiAgICAgICAgZm9yKGludCBpPTA7aTwyNjtpKyspewogICAgICAgICAgICBpZihjbi0+Y2hpbGRbaV0gPT0gTlVMTCkgY29udGludWU7CiAgICAgICAgICAgIHIrPWRmcyhjbi0+Y2hpbGRbaV0sbGV2KzEpOwogICAgICAgIH0KICAgICAgICBjbi0+dmFsLT1yOwogICAgICAgIGFucys9KGNuLT52YWwvaykqbGV2OwoKICAgICAgICByZXR1cm4gcisoY24tPnZhbC9rKSprOwogICAgfQp9OwoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7IGNvdXQudGllKE5VTEwpOwogICAgaW50IHR0OwogICAgY2luPj50dDsKICAgIGludCB0eT0xOwogICAgd2hpbGUodHQtLSl7CiAgICAgICAgYW5zPTA7CiAgICAgICAgY2luPj5uPj5rOwogICAgICAgIHRyaWUgb2JqOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICBjaW4+PnM7CiAgICAgICAgICAgIG9iai5pbnNlcnQob2JqLnJvb3QsMCk7CiAgICAgICAgfQogICAgICAgIGludCBmYWx0dT1vYmouZGZzKG9iai5yb290LDApOwogICAgICAgIGNvdXQ8PCJDYXNlICMiPDx0eSsrPDwiOiAiPDxhbnM8PCdcbic7CiAgICB9Cn0=