rt
#include <bits/stdc++.h>
using namespace std;
int n,cnt,c[30]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9};
map<string,int> mp;
map<string,bool> m;
string str[100005],ans[100005];
inline int read(){
int x=0;bool f=1;char ch=getchar();
for(;ch>'9'||ch<'0';ch=getchar()) if(ch=='-') f=0;
for(;ch>='0'&&ch<='9';ch=getchar()) x=(x<<3)+(x<<1)+(ch^48);
return f?x:-x;
}
inline string stread(){
string w="";char ch=getchar();
for(;(ch^' ')&&(ch^'\n');ch=getchar())
if(ch^'-')
if(ch>='0'&&ch<='9') w=w+ch;
else w=w+char(c[ch-'A']+48);
return w;
}
inline void print(string s){
putchar(s[0]),putchar(s[1]),putchar(s[2]),putchar('-'),putchar(s[3]),
putchar(s[4]),putchar(s[5]),putchar(s[6]),putchar(' ');
}
int main(){
n=read();
for(int i=1;i<=n;i++)
str[i]=stread(),mp[str[i]]++;
for(int i=1;i<=n;i++)
if(mp[str[i]]>1&&!m[str[i]])
ans[++cnt]=str[i],m[str[i]]=1;
if(!cnt) return puts("No duplicates."),0;
sort(ans+1,ans+cnt+1);
for(int i=1;i<=cnt;i++)
print(ans[i]),printf("%d\n",mp[ans[i]]);
return 0;
}