/*
TASK:sms
LANG:C++
*/
#include<iostream>
using namespace std;
int n,i,j,k,m,p,d,k1,k2;
string s[128][128],s1,s2,s3;
char ch,ch1;
int main()
{
    for(i=1;i<=127;i++)
    for(j=1;j<=127;j++)
    s[i][j]="zzz";
    cin>>n;
    cin.get(ch1);
    for(i=1;i<=n;i++)
    {
                     getline(cin,s1);
                     cin>>k;
                     cin.get(ch);
                     getline(cin,s2);
                     for(j=1;j<=n;j++)
                     {
                                      if(s1==s[j][1]){s[j][k+1]=s2;break;}
                                      else {if(s[j][1]=="zzz"){s[j][1]=s1;s[j][k+1]=s2;k1++;break;}}
                     }
    }
    for(j=k1;j>=2;j--)
    for(i=j;i>=2;i--)
    {
                     m=s[i][1].size();
                     if(s[i-1][1].size()<m)m=s[i-1][1].size();
                     for(p=0;p<m;p++)
                     {
                                     if(s[i][1][p]<s[i-1][1][p]){d=1;break;}
                                     if(s[i][1][p]>s[i-1][1][p]){break;}
                     }
                     p=0;
                     if(d)
                     {
                          while(s[i][p]!="zzz")
                          {
                                            p++;
                                            s3=s[i][p];s[i][p]=s[i-1][p];s[i-1][p]=s3;
                          }
                     }
    }
    j=1;
    for(i=1;i<=k1;i++)
    { 
                       while(s[i][j]!="zzz")
                       {
                        j++;
                       }
                       j=1;
                       if(i!=k1)cout<<endl;
    }
    return 0;
}
