지연이 알려진 열차 시간표에서, 실제로 도달 가능한 어떤 도착 시각보다 약속 도착 시각이 1800초 이상 이른 예약의 최소 출발 시각을 찾는다.
어려움8이분 탐색동적 계획법그래프최단 경로아직 제출이 없습니다시간 제한2초메모리 제한512 MB철도 회사는 승객이 예매한 일정보다 30분(1800초) 이상 늦게 목적지에 닿으면 보상금을 지급해야 한다. 당신은 그 보상금을 노린다.
여행은 1,2,…,N번 역을 이 순서대로 지난다. 시간표에 실린 열차는 모두 한 구간만 운행해서, 어떤 역 X에서 X+1번 역으로 간다. 열차마다 계획 출발 시각 S와 계획 도착 시각 T가 있고 여행 당일에는 L초 지연되므로, 실제로는 S+L에 출발해 T+L에 도착한다. 시간표와 지연 목록을 모두 손에 넣었으니 예매하기 전에 그날의 운행을 전부 안다.
예매는 N−1개 구간마다 열차를 하나씩 고르는 것이다. 이웃한 두 구간에서 뒤 열차의 계획 출발 시각은 앞 열차의 계획 도착 시각보다 빨라서는 안 된다. 환승에는 시간이 걸리지 않는다. 예매의 출발 시각은 첫 열차의 계획 출발 시각이고, 약속 도착 시각은 마지막 열차의 계획 도착 시각이다.
여행 당일에는 예매한 출발 시각에 1번 역에 선다. 그 뒤로는 실제로 탈 수 있는 열차라면 무엇이든 타도 된다. 1번 역에서는 실제 출발 시각이 예매 출발 시각 이상인 열차를, 그다음 역부터는 실제 출발 시각이 그 역에 실제로 도착한 시각 이상인 열차를 탄다. 예매한 열차를 그대로 탈 필요는 없다.
출발 시각이 s이고 약속 도착 시각이 A인 예매는, 시각 s에 1번 역을 떠나는 모든 이동 방법이 N번 역에 아예 닿지 못하거나 실제 도착 시각이 A+1800 이상일 때 보상금을 받는다.
시각은 초 단위 숫자일 뿐이고 하루가 지나도 되돌아가지 않으므로, 지연 탓에 실제 도착 시각이 86400을 넘기도 한다.
보상금을 받는 예매 가운데 출발 시각이 가장 이른 것을 구하라.
첫째 줄에 역의 수 N과 시간표에 실린 열차의 수 M이 주어진다 (2≤N≤100, 1≤M≤105).
다음 M개 줄에는 열차 하나를 나타내는 네 정수 X, S, T, L이 주어진다 (1≤X≤N−1, 0≤S≤T<86400, 0≤L<86400). 이 열차는 X번 역에서 X+1번 역으로 가고, 계획 출발 시각은 S, 계획 도착 시각은 T이며 L초 지연된다.
보상금을 받는 예매 가운데 가장 이른 출발 시각을 한 줄에 출력한다. 그런 예매가 없으면 impossible을 출력한다.