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