#include<bits/stdc++.h>
using namespace std;
#define ll long long
unordered_map<char, char> mp;
unordered_map<string, int> mp2;
string a[100005], a2[100005];
int main() {
mp['0'] = '0';
mp['1'] = '1';
mp['A'] = mp['B'] = mp['C'] = mp['2'] = '2';
mp['D'] = mp['E'] = mp['F'] = mp['3'] = '3';
mp['G'] = mp['H'] = mp['I'] = mp['4'] = '4';
mp['J'] = mp['K'] = mp['L'] = mp['5'] = '5';
mp['M'] = mp['N'] = mp['O'] = mp['6'] = '6';
mp['P'] = mp['R'] = mp['S'] = mp['7'] = '7';
mp['T'] = mp['U'] = mp['V'] = mp['8'] = '8';
mp['W'] = mp['X'] = mp['Y'] = mp['9'] = '9';
ll n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j < a[i].size(); j++) {
if (a[i][j] == '-') {
a[i].erase(j, 1);
j--;
continue;
}
a[i][j] = mp[a[i][j]];
}
}
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; i++) {
mp2[a[i]]++;
}
bool flag = 0;
for (auto i:mp2) {
//cout << i.first << ' ' << i.second << endl;
if(i.second > 1){
cout << i.first.substr(0,3) << '-' << i.first.substr(3, 4) << ' ' << i.second << endl;
flag = 1;
}
}
if(!flag){
cout << "No duplicates.";
}
}