#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
int nr;
int licznik=1;
string imie, nazwisko;
vector <string> imiona;
vector <int> ilosc;
vector <string> kolejnosc;
int main() {
cin>>nr;
for(int i=1; i<=nr; i++)
{
cin>>nazwisko>>imie;
transform(imie.begin(), imie.end(), imie.begin(), ::toupper);
imiona.push_back(imie);
}
sort(imiona.begin(), imiona.end());
for(int g=0; g<imiona.size(); g++)
{
if(imiona[g]==imiona[g+1])
{
licznik++;
}
else
{
kolejnosc.push_back(imiona[g]);
ilosc.push_back(licznik);
licznik=1;
}
}
for(int s=0; s<kolejnosc.size(); s++)
{
for(int d=0; d<kolejnosc.size()-1; d++)
{
if(ilosc[d]<ilosc[d+1])
{
swap(ilosc[d], ilosc[d+1]);
swap(kolejnosc[d], kolejnosc[d+1]);
}
}
}
for(int c=0; c<kolejnosc.size(); c++)
{
cout<<kolejnosc[c]<<" "<<ilosc[c]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG5yOwppbnQgbGljem5paz0xOwpzdHJpbmcgaW1pZSwgbmF6d2lza287CnZlY3RvciA8c3RyaW5nPiBpbWlvbmE7CnZlY3RvciA8aW50PiBpbG9zYzsKdmVjdG9yIDxzdHJpbmc+IGtvbGVqbm9zYzsKCgoKaW50IG1haW4oKSB7CgkKCWNpbj4+bnI7Cglmb3IoaW50IGk9MTsgaTw9bnI7IGkrKykKCXsKCQljaW4+Pm5hendpc2tvPj5pbWllOwoJCXRyYW5zZm9ybShpbWllLmJlZ2luKCksIGltaWUuZW5kKCksIGltaWUuYmVnaW4oKSwgOjp0b3VwcGVyKTsKCQlpbWlvbmEucHVzaF9iYWNrKGltaWUpOwoJfQoKCQoJc29ydChpbWlvbmEuYmVnaW4oKSwgaW1pb25hLmVuZCgpKTsKCQoJZm9yKGludCBnPTA7IGc8aW1pb25hLnNpemUoKTsgZysrKQoJewkKCQlpZihpbWlvbmFbZ109PWltaW9uYVtnKzFdKQoJCXsKCQkJbGljem5paysrOwoJCX0KCQkKCQllbHNlCgkJewoJCQlrb2xlam5vc2MucHVzaF9iYWNrKGltaW9uYVtnXSk7CgkJCWlsb3NjLnB1c2hfYmFjayhsaWN6bmlrKTsKCQkJbGljem5paz0xOwoJCX0KCQkKCX0KCQoJZm9yKGludCBzPTA7IHM8a29sZWpub3NjLnNpemUoKTsgcysrKQogICAgewogICAgICAgIGZvcihpbnQgZD0wOyBkPGtvbGVqbm9zYy5zaXplKCktMTsgZCsrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoaWxvc2NbZF08aWxvc2NbZCsxXSkKICAgICAgICAgICAgewogICAgICAgICAgICAJc3dhcChpbG9zY1tkXSwgaWxvc2NbZCsxXSk7CiAgICAgICAgICAgICAgICBzd2FwKGtvbGVqbm9zY1tkXSwga29sZWpub3NjW2QrMV0pOyAgIAoJCQl9CiAgICAgICAgICAgICAgIAogICAgICAgIH0KICAgIH0KCQoKCWZvcihpbnQgYz0wOyBjPGtvbGVqbm9zYy5zaXplKCk7IGMrKykKCXsKCQljb3V0PDxrb2xlam5vc2NbY108PCIgIjw8aWxvc2NbY108PGVuZGw7Cgl9CgkKCQoJcmV0dXJuIDA7Cn0=