#include <stdio.h>
#include <string.h>

char* getFilename(const char *path) {
    int len = strlen(path);
    for(int i = len; i > 0; i--) {
        if(path[i] == '\\') {
            return (char*)(path + i + 1);
            break;
        }
    }
    return (char*)path;
}
int main() {
    char record[101];
    int linenumber;
    char recordname[100][17];
    int recordinfo[100][2];
    int count = 0;
    while (scanf("%s %d", record, &linenumber) != EOF) { 
        char *filename = getFilename(record);
        //printf("filename is %s\n", filename);
        int len = strlen(filename);
        char newfilename[17];
        if (len > 16) {
            strncpy(newfilename, filename + len - 16, 16);
            newfilename[16] = '\0';
        } else {
            strcpy(newfilename, filename);
        }
        int findsame = 0;
        for(int i = 0; i < count; i++){
            if((strcmp(recordname[i], newfilename) == 0) && (recordinfo[i][0] == linenumber)){
                recordinfo[i][1]++;
                // printf("when file name is %s, the i is %d\n", recordname[i], i);
                // printf("the new filename is %s", newfilename);
                // printf("find same error.\n");
                findsame = 1;
                break;
            }
        }
        if(findsame == 0){
            strcpy(recordname[count], newfilename);
            recordinfo[count][0] = linenumber;
            recordinfo[count++][1] = 1;
        }
    }

    if(count > 8) {
        for(int i = count - 8; i < count; i++){
            printf("%s %d %d\n", recordname[i], recordinfo[i][0], recordinfo[i][1]);
        }
    } else {
        for(int i = 0; i < count; i++) {
            printf("%s %d %d\n", recordname[i], recordinfo[i][0], recordinfo[i][1]);
        }
    }
    return 0;
}