경제적인 통화 기록

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

당신이 오래전에 산 휴대폰에는 걸려 온 모든 통화를 기록하는 내장 메모리가 있다. 통화마다 날짜(월과 일), 시각(시와 분), 그리고 발신 번호가 저장된다. 당시에는 메모리가 비쌌기 때문에 저장할 수 있는 통화 수에는 한계가 있다.

기록이 거의 가득 차서 일부 항목을 지우려고 한다. 어떤 항목을 지울지 고를 때 다음 두 가지 조건을 지켜야 한다.

  1. 반드시 남겨야 하는 중요한 항목이 있다.
  2. 남기는 모든 통화에 대해, 휴대폰이 저장하지 않는 연도를 아래 절차로 복원할 수 있어야 한다.

두 조건을 모두 만족시키면서 남겨야 하는 항목 수의 최솟값을 구하라.

연도 복원 방법

시각(월, 일, 시, 분)만 담긴 통화 목록이 시간순으로 주어졌을 때, 각 통화의 연도는 다음과 같이 복원한다.

  1. 목록의 마지막 통화는 올해에 이루어졌다.
  2. 어떤 통화의 시각을 $t$, 바로 앞 통화의 시각을 $t'$라 하자. $t' < t$이면 두 통화는 같은 해에 일어난 것으로 본다. $t' \ge t$이면 앞 통화는 한 해 전에 일어난 것으로 본다.
  3. 목록을 뒤에서 앞으로 옮겨 가며 2번 규칙을 반복해서 적용한다.

이 절차가 일반적으로 항상 옳지는 않지만, 주어지는 입력에서는 실제 연도를 정확히 복원한다고 가정해도 된다. 항목을 지운 뒤에도, 줄어든 기록에 같은 절차를 적용했을 때 남은 모든 통화의 연도가 원래와 똑같이 나와야 한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 기록에 담긴 항목 수 $n$($1 \le n \le 1000$)이 적힌 줄로 시작한다. 이어지는 $n$개의 줄에는 항목이 하나씩 주어진다.

각 항목의 형식은 mm:dd:HH:MM number ±이다. 월 mm, 일 dd, 시 HH, 분 MM, 발신 번호 number(1자리에서 16자리), 그리고 마지막에 표시 하나가 온다. +는 반드시 남기려는 통화, -는 그 밖의 통화를 뜻한다. 항목은 휴대폰에 저장된 그대로, 즉 통화를 받은 시간 순서대로 주어진다(마지막 항목이 가장 최근이다).

위 복원 절차가 모든 통화의 연도를 정확히 복원한다고 가정해도 된다.

마지막 테스트 케이스 다음에는 0만 적힌 줄이 오며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다, 두 조건을 만족시키기 위해 남겨야 하는 항목 수의 최솟값을 한 줄에 하나씩 출력한다. 특히, 남긴 항목들에 복원 절차를 적용했을 때 각 항목의 연도가 원래 기록에서와 똑같이 나와야 한다.