import math
def solution(fees, records):
    
    answer = []
    matrix = {}
    records = sorted(records, key = lambda x : (x[6:10],x[:5]))
    for record in records:
        
        if record[6:10] not in matrix:
            matrix[record[6:10]] = [record[:5]]
        else :
            matrix[record[6:10]].append(record[:5])
    
    for key,value in matrix.items():
        if len(value) % 2 == 1:
            matrix[key].append("23:59")
    cumsum = 0
    
    for key,value in matrix.items():
        
        for i in range(0,len(value),2):
            
            cumsum += ((int(value[i+1][0:2]) * 60 + int(value[i+1][3:5])) - (int(value[i][0:2]) * 60 + int(value[i][3:5])))
        if cumsum > fees[0]:
            answer.append(fees[1] + (math.ceil((cumsum - fees[0]) / fees[2])) * fees[3])
        else :
            answer.append(fees[1])
        cumsum = 0
        
    
    return answer