당신이 오래전에 산 휴대폰에는 걸려 온 모든 통화를 기록하는 내장 메모리가 있다. 통화마다 날짜(월과 일), 시각(시와 분), 그리고 발신 번호가 저장된다. 당시에는 메모리가 비쌌기 때문에 저장할 수 있는 통화 수에는 한계가 있다.
기록이 거의 가득 차서 일부 항목을 지우려고 한다. 어떤 항목을 지울지 고를 때 다음 두 가지 조건을 지켜야 한다.
두 조건을 모두 만족시키면서 남겨야 하는 항목 수의 최솟값을 구하라.
시각(월, 일, 시, 분)만 담긴 통화 목록이 시간순으로 주어졌을 때, 각 통화의 연도는 다음과 같이 복원한다.
이 절차가 일반적으로 항상 옳지는 않지만, 주어지는 입력에서는 실제 연도를 정확히 복원한다고 가정해도 된다. 항목을 지운 뒤에도, 줄어든 기록에 같은 절차를 적용했을 때 남은 모든 통화의 연도가 원래와 똑같이 나와야 한다.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 기록에 담긴 항목 수 $n$($1 \le n \le 1000$)이 적힌 줄로 시작한다. 이어지는 $n$개의 줄에는 항목이 하나씩 주어진다.
각 항목의 형식은 mm:dd:HH:MM number ±이다. 월 mm, 일 dd, 시 HH, 분 MM, 발신 번호 number(1자리에서 16자리), 그리고 마지막에 표시 하나가 온다. +는 반드시 남기려는 통화, -는 그 밖의 통화를 뜻한다. 항목은 휴대폰에 저장된 그대로, 즉 통화를 받은 시간 순서대로 주어진다(마지막 항목이 가장 최근이다).
위 복원 절차가 모든 통화의 연도를 정확히 복원한다고 가정해도 된다.
마지막 테스트 케이스 다음에는 0만 적힌 줄이 오며, 이 줄은 처리하지 않는다.
각 테스트 케이스마다, 두 조건을 만족시키기 위해 남겨야 하는 항목 수의 최솟값을 한 줄에 하나씩 출력한다. 특히, 남긴 항목들에 복원 절차를 적용했을 때 각 항목의 연도가 원래 기록에서와 똑같이 나와야 한다.