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