//空间换时间 POJ 1002 487-3279
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int t[10000000];
char change(char c)
{
if (c < 'Q')
return (c-'A')/3+'2';
else
return (c-'A'-1)/3+'2';
}
void add(char* buffer)
{
char s[20];
int n;
for (int i = 0, j = 0; i < strlen(buffer); i++)
{
if (buffer[i] >= '0' && buffer[i] <= '9')
s[j++] = buffer[i];
else if(isalpha(buffer[i]) && (buffer[i]!='Q') && (buffer[i] != 'Z'))
s[j++] = change(buffer[i]);
}
s[7] = '\0';
n = atoi(s);
t[n]++;
}
int main()
{
int caseNum;
char buffer[50];
bool flag = true;
cin >> caseNum;
memset(t, 0, sizeof(t));
while (caseNum--)
{
cin >> buffer;
add(buffer);
}
for (int i = 0; i < 10000000; i++)
{
if (t[i]>1)
{
flag = false;
printf("%03d-%04d %d\n", i/10000, i%10000, t[i]);
}
}
if (flag)
cout << "No duplicates." << endl;
// system("pause");
return 0;
}