#include <iostream>
#include <queue>
#include <map>

using namespace std;

struct Info {
    string name;
    string linenum;
    int times;
};

// 题目要求保存所有的记录,但只打印最后8条,而不是将之前的记录删除!
int main() {
    string line;
    map<string, Info*> m;
    queue<Info*> q;

    while(getline(cin, line)) {
        string filepath, linenum;
        string index;
        Info* item;
        int split;

        item = new Info;
        split = line.find(' ');
        filepath = line.substr(0, split);
        linenum = line.substr(split+1, line.size() - split - 1);

        split = filepath.rfind('\\');
        if (split >= 0) {
            int si***(16, (int)(filepath.size() - split - 1));
            item->name = filepath.substr(filepath.size() - size, size);
        } else {
            if (filepath.size() > 16) {
                item->name = filepath.substr(filepath.size() - 16, 16);
            } else {
                item->name = filepath;
            }

        }
        item->linenum = linenum;
        item->times = 1;
        index = item->name + item->linenum;
        // 新item
        if (m.count(index) == 0) {
            m[index] = item;
            // cout << "save " << item << " to " << index << endl;
            // 超过存储长度
            if (q.size() >= 8) {
                Info* old_item = q.front();
                // m.erase(old_item->name + old_item->linenum);
                m[old_item->name + old_item->linenum] = nullptr;
                delete old_item;
                q.pop();
            }
            q.push(item);
        // 已存在的item
        } else if (m[index] != nullptr){
            m[index]->times++;
        }
    }
    while(!q.empty()) {
        Info* item = q.front();
        printf("%s %s %d\n", item->name.c_str(), item->linenum.c_str(), item->times);
        delete item;
        q.pop();
    }
    return 0;
}