/*
TASK: sms
LANG: C++
*/
#include <iostream>
#include <stdio.h>
#include <string>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;

map < string , vector< pair <int , string> > > a;

void doit()
{
    string s;
    int n;
    string msg;
    
    getline(cin,s);
    cin>>n;
    getchar();
    getline(cin,msg);
    
    //cout<<s<<' '<<n<<' '<<msg<<endl;
    
    a[s].push_back(make_pair(n,msg));
}

int main()
{
    int n;
    int i;
    
    scanf ("%d",&n);
    getchar();
    
    for (i=0;i<n;i++)
    {
        doit();
    }
    
    map < string , vector< pair <int , string> > >::iterator it;
    
    int lamp = 0;
    
    for (it = a.begin();it!=a.end();it++)
    {
        if (lamp)
        {
            printf ("\n");
        }
        
        sort ((*it).second.begin(),(*it).second.end());
        
        lamp = 1;
        
        printf ("%s\n",(*it).first.c_str());
        
        n = (*it).second.size();
        
        for (i=0;i<n;i++)
        {
            printf ("%s\n",(*it).second[i].second.c_str());
        }
    }
}
