map<string,int> mmp;
int n;
cin >> n;
string s,s2;
int k = 1;
for(int i =1;i<=n;i++){
cin >> s >> s2;
auto it = mmp.find(s);
if(it == mmp.end()){
mmp.insert({s,1});
}else{
mmp[s]++;
if(s == "section" && mmp["section"]!=1){
mmp["subsection"] = 0;
mmp["subsubsection"] = 0;
}else if(s == "subsection"&&mmp["subsection"]!=1){
mmp["subsubsection"] = 0;
}
}
if(s == "section"){
cout << mmp["section"] <<" "<<s2 <<endl;
}else if(s == "subsection"){
cout << mmp["section"]<<"."<<mmp["subsection"]<< " " << s2 <<endl;
}else if(s == "subsubsection"){
cout << mmp["section"]<<"."<<mmp["subsection"]<<"."<<mmp["subsubsection"] << " " <<s2 << endl;
}
}