#include <string.h>

/* 错误记录结构体 */
typedef struct ErrRecord
{
    char value[20];
    char line[10];
    int num;
}ErrRecord_T, *ErrRecord_p;

int main()
{
    char inputStr[101] = {0};
    struct ErrRecord errRecordData[100];
    char *str = NULL;
    int j = 0;
    int index = 0;
    int flag;
    int m;
    
    memset(errRecordData, 0, sizeof(struct ErrRecord) * 100);
   
    while(gets(inputStr) != NULL)
    {
        int i;
        int k;
        struct ErrRecord errRecord;
        memset(&errRecord, 0 , sizeof(errRecord));
        str = strtok(inputStr, " ");
        
        j = 0;
        flag = 0;
        
        /* 查询到最后一个 \ 或者 最后16个字符 下标位置 */
        for( i = strlen(str) - 1; str[i] != '\\' && j <= 15; i--, j++);
       
        strcpy(errRecord.value, &str[i+1]);

        str = strtok(NULL, " ");
        strcpy(errRecord.line, str);
        errRecord.num = 1;
        
        /* 匹配之前是否有重复 */
        for( k = 0; k <= index; k++)
        {
            //                 printf("errRecord value = %s, line = %s, num = %d \n", errRecord.value, errRecord.line, k);
            //                 printf("errRecordData value = %s, line = %s, num = %d \n", errRecordData[k].value, errRecordData[k].line,
            //                            k);
            if(strcmp(errRecordData[k].value, errRecord.value) == 0 && strcmp(errRecordData[k].line, errRecord.line) == 0)
            {
                errRecordData[k].num++;
                flag = 1;
                break;
            }
        }
        
        /* 没有重复则,添加当前记录 */
        if(!flag)
        {
            
            errRecordData[index] = errRecord;
            //                 printf("errRecordData value = %s, line = %s, index = %d \n", errRecordData[index].value, errRecordData[index].line,
            index++;
        }
    }
    
   
    if(index >= 8)
    {
        m = index - 8;
    }else
    {
        m = 0;
    }
    for(m; m < index; m++)
    {
        printf("%s %s %d\n", errRecordData[m].value, errRecordData[m].line, errRecordData[m].num);
    }
    
    return 0;
}