#include<bits/stdc++.h>
using namespace std;
const int N=5005;
const int INF=0x3f3f3f3f;
typedef long long ll;
int n, root, L;
ll ans=0;
char s[1005];
struct node{
char ch;
int l, r;
ll cnt;
}trie[4005*1005];
int newnode(char ch){
trie[L].ch=ch;
trie[L].l=trie[L].r=-1;
trie[L].cnt=1;
return L++;
}
void init(){
ans=0;
L=0;
root=newnode('&');
}
void Insert(char buf[]){
int now=root;
int len=strlen(buf);
for(int i=0; i<=len; i++){
bool found=false;
int las;
for(int to=trie[now].l; to!=-1; to=trie[to].r){
if(trie[to].ch==buf[i]){
found=true;
ans+=2*trie[to].cnt++;
now=to;
}
else{
ans+=trie[to].cnt;
}
las=to;
}
if(!found){
int tmp=newnode(buf[i]);
if(trie[now].l==-1)
trie[now].l=tmp;
else{
trie[las].r=tmp;
}
now=tmp;
}
}
}
int main()
{
int cas=0;
while(~scanf("%d", &n) && n){
init();
for(int i=1; i<=n; i++){
scanf("%s", s);
Insert(s);
}
printf("Case %d: %lld\n", ++cas, ans);
}
return 0;
}