/*
TASK:sms
LANG:C++
*/

#include<iostream>
#include<map>
using namespace std;

map<string, int> msg;
string msgs[128][12];
int main()
{
    int n;
    cin>>n;
    int i,j,k, count=0;
    map<string, int>::iterator msgi=msg.begin();
    string s, ms;
    
    char ms1[50];
    int nm;
    for(i=0; i<n; i++)
    {
        cin>>s;
        cin>>nm;
        gets(ms1);
        ms=ms1;
        if(msg[s]) k=msg[s];
        else
        {
            k=count;
            msg[s]=count++;
        }
        msgs[k][nm]=ms;
    }
    cout<<msg.size();
    for(msgi=msg.begin(); msgi != msg.end(); msgi++)
    {
        cout<<msgi->first<<endl;
        i=msgi->second;
        j=0;
        while(msgs[i][j]!="")cout<<msgs[i][j++]<<endl;
        printf("\n");
    }
    return 0;
}
