/*
TASK:SMS
LANG:C++
*/
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct sms
{
string autor;
string s;
int part;
};
bool f(sms x,sms y)
{
if (x.autor<y.autor) 
return true;
else if ((x.autor==y.autor)&&(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++)
{
getline(cin,a[i].autor);
cin>>a[i].part;
getline(cin,a[i].s);
}
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;
}



    
