#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; }