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