#include <iostream>
#include <queue>
#include <string>
#include <unordered_map>
#include <vector>
#include <sstream>
#include <map>
#include <algorithm>
using namespace std;

int main() {
    string path_name;
    int error_row;
    unordered_map<string, int> u_map;
    vector<string> orginal_order;
    vector<pair<string ,int>> pair_order;

    while (cin >> path_name >> error_row) { // 注意 while 处理多个 case
        stringstream ss(path_name);
        string segment;
        vector<string> parts;
        while (getline(ss, segment, '\\')) if (!segment.empty()) parts.push_back(segment);
        string filename ;
        if (!parts.empty()) filename = parts.back();
        // cout<<filename<<endl;
        // auto temp_pair = make_pair(filename, error_row);
        string temp_error = filename +"\\" +to_string(error_row);
        // cout<<temp_error<<endl;

        if (u_map.count(temp_error) != 0) {
            u_map[temp_error]++;
        } else {
            u_map[temp_error] = 1;
            orginal_order.push_back(temp_error);
        }
    }
    pair_order.reserve(orginal_order.size());
    for(const auto& tem_error:orginal_order) {
        // cout<<tem_error<<endl;
        pair_order.emplace_back(tem_error,u_map[tem_error]);
    }
    // cout<<"u_map.size():"<<u_map.size()<<" orginal_order.size():"<<orginal_order.size()<<" pair_order.size():"<<pair_order.size()<<endl;
    // for(const auto& [key,val]:u_map){
    //     cout<<key<<val<<endl;
    // }
    // for(const auto& te_error:orginal_order){
    //     cout<<te_error<<endl;
    // }
    // for(const auto& te_error_pair:pair_order){
    //     cout<<te_error_pair.first<<te_error_pair.second<<endl;
    // }
    auto cmp = [](pair<string,int> a,pair<string,int> b){return a.second>b.second;};//a>b,a的优先级低,排在前面,所以是降序,结合原序可以实现先出现的在前
    stable_sort(pair_order.begin(),pair_order.end(),cmp);
    // for(const auto& te_error_pair:pair_order){
    //     cout<<te_error_pair.first<<te_error_pair.second<<endl;
    // }

    int num = pair_order.size()>8 ? 8: pair_order.size();
    for(int i=0;i<num;i++){
        pair<string,int> max_tp = pair_order[i];
        stringstream st1(max_tp.first);
        string part;
        while(getline(st1, part,'\\')){
            if(!part.empty()) {
                string cout_str;
                cout_str = part.size()>16? part.substr(part.size()-16):part;
                cout<<cout_str<<" ";
            }
        }
        cout<<max_tp.second<<endl;
    }
}
// 64 位输出请用 printf("%lld")