#include<bits/stdc++.h>
using namespace std;
class ErrorRecord
{
public:
string name;
int lineNum;
int times;
int order;
ErrorRecord()
{
this->times=1;
}
bool operator==(const ErrorRecord& e)
{
if(this->name==e.name&&this->lineNum==e.lineNum)
{
return true;
}
return false;
}
};
bool cmp(ErrorRecord& a,ErrorRecord& b)
{
return a.times>b.times;
}
int main()
{
ios::sync_with_stdio(false);
//freopen("in.txt","r",stdin);
vector<ErrorRecord> vec;
string s;
int lineNum;
int length;
int isNotSame=1;
while(cin>>s>>lineNum)
{
int n=s.rfind('\\');
s=s.substr(n+1,s.size());
length=vec.size();
ErrorRecord e;
e.name=s;
e.lineNum=lineNum;
e.times=1;
isNotSame=1;
for(int i=0;i<length;i++)//
{
if(vec[i]==e)
{
vec[i].times++;
isNotSame=0;
//cout<<111111<<endl;
break;
}
}
if(isNotSame==1)
{
vec.push_back(e);
}
}
//排序
sort(vec.begin(),vec.end(),cmp);
//输出、输出时注意只输出最后16个字符
length=min((int)vec.size(),8);
for(int i=0;i<length;i++)
{
string name=vec[i].name;
int slength=name.size();
if(slength>16)
{
cout<<name.substr(slength-16,slength);
}
else
{
cout<<name;
}
cout<<" "<<vec[i].lineNum<<" "<<vec[i].times<<endl;
}
return 0;
}