/*
TASK:SMS
LANG:C++
*/
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct sms
{
char autor[16];
char s[26];
int part;
};
bool f(sms x,sms y)
{
if (strcmp(x.autor,y.autor)==-1) 
return true;
else if ((strcmp(x.autor,y.autor)==0)&&(x.part<y.part))
return true;
return false;
}
int main()
{
sms a[100];
int n,p;
cin>>n;
for (int i=0;i<n;i++)
{
cin.getline(a[i].autor,16);
cin>>a[i].part;
cin.getline(a[i].s,26);
}
string t="";
sort(a,a+n,f);
for (int i=0;i<n;i++)
if (t==a[i].autor)
cout<<a[i].s<<endl;
else
{
t=a[i].autor;     
if (t=="")
cout<<a[i].autor<<endl<<a[i].s<<endl;
else
cout<<endl<<endl<<a[i].autor<<endl<<a[i].s<<endl;
};
return 0;
}



    
