/*
TASK: sms
LANG: c++
*/
#include<iostream>
#include<string>
using namespace std;
int main()
{
 string mini,pod,mess,podateli[100],sms[100][10];
 int n,br=0,nsms=0,who=0,brsms[101],used[101],ind=0;
 char red;   
 cin>>n;
 cin.get();
 for(int i=0;i<n;i++)
 {
   bool key=0;
   getline(cin,pod);  
   for(int i=0;i<br;i++)  if(pod.compare(podateli[i])==0) {key=1;who=i;}
   if(key==0) {who=br;podateli[br++]=pod;} 
   cin>>red; cin.get();  nsms=red-'0';
   brsms[who]++;
   getline(cin,mess); sms[who][nsms]=mess;
 }
 
 mini=podateli[0];
 ind=0;
 for(int i=0;i<br;i++)
 { 
  ind=0;
  for(int k=0;k<br;k++) if(!used[k]) {mini=podateli[k]; ind=k;break; }
  for(int j=0;j<br;j++)
   if((mini.compare(podateli[j])==1) && (used[j]=0)) {mini=podateli[j];ind=j;}
  used[ind]=1;  
  cout<<mini<<endl;
  cout<<sms[ind][1];
  for(int p=2;p<=brsms[ind];p++) cout<<endl<<sms[ind][p];
  if((i+1)<br)cout<<endl<<endl;
 }
 return 0;    
}
