#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char tel[100],telephone[100010][100];
int cmp(const void *_a,const void *_b)
{
char *a=(char *)_a;
char *b=(char *)_b;
return strcmp(a,b);
}
void name(char *tel,int i)
{
int j,l,n=0;
l=strlen(tel);
for(j=0;j<l;j++)
{
if(tel[j]>='A'&&tel[j]<='O')
telephone[i][n++]=(tel[j]-'A')/3+'2';
else if(tel[j]=='P'||tel[j]=='S'||tel[j]=='R')
telephone[i][n++]='7';
else if(tel[j]>='T'&&tel[j]<='Y')
telephone[i][n++]=(tel[j]-'T')/3+'8';
else if(tel[j]>='0'&&tel[j]<='9')
telephone[i][n++]=tel[j];
else;
}
telephone[i][n]='\0';
}
int main()
{
int i,j,k,cases,n,count,flag;
scanf("%d",&cases);
getchar();
getchar();
for(k=0;k<cases;k++)
{
if(k)
printf("\n");
scanf("%d",&n);
getchar();
flag=0;
for(i=0;i<n;i++)
{
gets(tel);
name(tel,i);
}
qsort(telephone,n,sizeof(telephone[0]),cmp);
count=1;
for(i=0;i<n-1;)
{
while(strcmp(telephone[i],telephone[i+1])==0&&i<n-1)
{
i++;
count++;
}
if(count>1)
{
for(j=0;j<3;j++)
printf("%c",telephone[i][j]);
printf("-");
for(j=3;j<7;j++)
printf("%c",telephone[i][j]);
printf(" %d\n",count);
count=1;
flag=1;
}
while(strcmp(telephone[i],telephone[i+1])!=0&&i<n-1)
i++;
}
if(!flag)
printf("No duplicates.\n");
}
return 0;
}