# 记录错误数据(使用append添加,pop(0)删除列表头错误数据)
input_list = []
# 设置记录错误数据列表的长度
input_list_size = 0
# 当input_list长度大于8,并且有最新的错误需要记录时,删除input_list头数据,数据存储在input_list_remove
input_list_remove = []
# 记录错误数据的个数字典
dict_input = {}

while True:
    try:
		# 处理输入数据
        ont_data = input().split(" ")
        row = ont_data[-1]
        file_path = ont_data[0]
        file_name = file_path.split("\\")[-1]
        if len(file_name) >16:
            file_name = file_name[-16:]
        # 最终存入列表的记录数据,如:"ywzqaop 631"
        key = file_name + " " + row
        # 长度小于8
        if input_list_size < 8:
            # 如果 key 不在 input_list,则添加到列表,列表长度+1,并且更新dict_input
            if key not in input_list:
                    input_list.append(key)
                    dict_input[key] = 1
                    input_list_size += 1
            else:
				key 在 input_list,则只需要更新dict_input
                dict_input[key] += 1
        # 当列表长度小于8时
        else:
            # 如果 key 在 input_list,则更新dict_input记录的错误数据的数量
            if key in input_list:
                dict_input[key] += 1
			# 如果 key 在 input_list_remove,则跳过不记录此条信息,因为此前已经出现过的记录不需要重新记录
            elif key in input_list_remove:
                continue
			# 如果key不在上面的条件中,则说明是新产生的无重复错误信息,
            else:
				# 删除头记录,并添加到已经记录过并且添删除的列表中
                input_list_remove.append(input_list.pop(0))
				# 添加新错误信息到列表尾部,并更新数量
                input_list.append(key)
                dict_input[key] = 1
    except:
        break
# 打印错误记录
for k in input_list:
    print(f"{k} {dict_input.get(k)}")