
n = int(input())
date = []
for _ in range(n):
f = list(map(int, input().split()))
date.append(f)
date.sort()
start_date = [3, 1]
end_date = [11, 31]
flowers = 0
while(start_date<end_date):
candidate = [n for n in date if n[0]<start_date[0] or (n[0]==start_date[0] and n[1]<=start_date[1])]
# print(candidate)
if not candidate:
print(0)
exit()
e_day = [3,1]
day = list()
for c in candidate:
if c[2:]>e_day:
e_day = c[2:]
day = c
start_date = e_day
# print(day)
date.remove(day)
flowers += 1
print(flowers)
이 문제의 핵심은 기준 날짜보다(초기값 3월1일) 앞서서 피는 꽃을 찾아야 하고, 그 꽃들 중에서 가장 오래 피어있는 꽃을 선택해야한다. 그리고 선택된 꽃이 지는 날이 다시 기준 날짜가 된다는 것이다. 이 아이디어만 생각하면 구현은 금방한다.
마지막으로 만약 그 어떤 꽃도 선택할 수 없을 땐 0을 출력하고 코드를 끝내면 되는 조건을 추가한다.
리스트로 뭔가를 하는게 익숙해서 무작정 리스트로 풀었는데 우선순위 큐 같은 걸로 풀수도 있을 것 같다.