#include<iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;
struct Node{
string filename;
int num;
int count;
Node(string name,int n, int c=1){
filename=name;
num=n;
count=c;
}
};
int isContained(vector<Node> vec, string name,int n){
for(int i=0;i<vec.size();i++){
if(vec[i].filename==name && vec[i].num==n)
return i;
}
return -1;
}
int main(){
string line,str;
int num;
vector<Node> vec;
while(getline(cin,line)){
stringstream ss(line);
ss>>str>>num;
int i=str.size()-1;
while(i>0){
if(str[i]=='\\')
break;
i--;
}
string filename=str.substr(i+1);
if(filename.size()>16)
filename=filename.substr(filename.size()-16);
if(isContained(vec, filename, num)==-1){
Node temp(filename,num,1);
vec.push_back(temp);
}
else{
vec[isContained(vec, filename, num)].count++;
}
}
if(vec.size()>8){
for(int i=vec.size()-8;i<=vec.size()-1;i++){
cout<<vec[i].filename<<" "<<vec[i].num<<" "<<vec[i].count<<endl;
}
}
else{
for(int i=0;i<vec.size();i++){
cout<<vec[i].filename<<" "<<vec[i].num<<" "<<vec[i].count<<endl;
}
}
return 0;
}