만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

보상금

시간 제한2초메모리 제한512 MB

요약
지연이 알려진 열차 시간표에서, 실제로 도달 가능한 어떤 도착 시각보다 약속 도착 시각이 1800초 이상 이른 예약의 최소 출발 시각을 찾는다.
난이도

어려움10점 중 8점

유형
이분 탐색, 동적 계획법, 그래프, 최단 경로
정답자
아직 제출이 없습니다

문제

철도 회사는 승객이 예매한 일정보다 30분(18001800초) 이상 늦게 목적지에 닿으면 보상금을 지급해야 한다. 당신은 그 보상금을 노린다.

여행은 1,2,…,N1, 2, \dots, N번 역을 이 순서대로 지난다. 시간표에 실린 열차는 모두 한 구간만 운행해서, 어떤 역 XX에서 X+1X + 1번 역으로 간다. 열차마다 계획 출발 시각 SS와 계획 도착 시각 TT가 있고 여행 당일에는 LL초 지연되므로, 실제로는 S+LS + L에 출발해 T+LT + L에 도착한다. 시간표와 지연 목록을 모두 손에 넣었으니 예매하기 전에 그날의 운행을 전부 안다.

예매는 N−1N - 1개 구간마다 열차를 하나씩 고르는 것이다. 이웃한 두 구간에서 뒤 열차의 계획 출발 시각은 앞 열차의 계획 도착 시각보다 빨라서는 안 된다. 환승에는 시간이 걸리지 않는다. 예매의 출발 시각은 첫 열차의 계획 출발 시각이고, 약속 도착 시각은 마지막 열차의 계획 도착 시각이다.

여행 당일에는 예매한 출발 시각에 1번 역에 선다. 그 뒤로는 실제로 탈 수 있는 열차라면 무엇이든 타도 된다. 1번 역에서는 실제 출발 시각이 예매 출발 시각 이상인 열차를, 그다음 역부터는 실제 출발 시각이 그 역에 실제로 도착한 시각 이상인 열차를 탄다. 예매한 열차를 그대로 탈 필요는 없다.

출발 시각이 ss이고 약속 도착 시각이 AA인 예매는, 시각 ss에 1번 역을 떠나는 모든 이동 방법이 NN번 역에 아예 닿지 못하거나 실제 도착 시각이 A+1800A + 1800 이상일 때 보상금을 받는다.

시각은 초 단위 숫자일 뿐이고 하루가 지나도 되돌아가지 않으므로, 지연 탓에 실제 도착 시각이 8640086400을 넘기도 한다.

보상금을 받는 예매 가운데 출발 시각이 가장 이른 것을 구하라.

입력

첫째 줄에 역의 수 NN과 시간표에 실린 열차의 수 MM이 주어진다 (2≤N≤1002 \le N \le 100, 1≤M≤1051 \le M \le 10^5).

다음 MM개 줄에는 열차 하나를 나타내는 네 정수 XX, SS, TT, LL이 주어진다 (1≤X≤N−11 \le X \le N - 1, 0≤S≤T<864000 \le S \le T < 86400, 0≤L<864000 \le L < 86400). 이 열차는 XX번 역에서 X+1X + 1번 역으로 가고, 계획 출발 시각은 SS, 계획 도착 시각은 TT이며 LL초 지연된다.

출력

보상금을 받는 예매 가운데 가장 이른 출발 시각을 한 줄에 출력한다. 그런 예매가 없으면 impossible을 출력한다.

예제3

  1. 예제 1

    입력
    2 3
    1 1800 9000 1800
    1 2000 9200 1600
    1 2200 9400 1400
    
    예상 출력
    1800
    
  2. 예제 2

    입력
    2 2
    1 1800 3600 1800
    1 1900 3600 1600
    
    예상 출력
    impossible
    
  3. 예제 3

    입력
    3 2
    1 10 20 1
    2 20 30 0
    
    예상 출력
    10