만드는 중입니다

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

스파이

시간 제한1초메모리 제한256 MB

요약
0에서 100 사이의 N개 제품 점수 차이에 대한 제약이 주어질 때 만족하는 배정 중 최고점과 최저점 차이의 최솟값을 구하고, 불가능하면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
최단 경로, 그래프, 이분 탐색, 수학
정답자
아직 제출이 없습니다

문제

석주가 회장으로 있는 SPARCS Company가 신제품 NN종을 내놓기로 했다. 베타테스터 KK명은 서로 협의해 각 신제품에 0점 이상 100점 이하의 정수 평점을 매겨 두었다.

경쟁사 GoN Company의 스파이 지훈이는 베타테스터 KK명에게 각각 질문을 던져 평점에 관한 정보를 하나씩 얻어냈다. 정보의 종류는 세 가지다.

  1. 1 a b c : (aa번 제품의 평점) −- (bb번 제품의 평점) ≥c\ge c
  2. 2 a b c : (aa번 제품의 평점) −- (bb번 제품의 평점) ≤c\le c
  3. 3 a b c : (aa번 제품의 평점) −- (bb번 제품의 평점) =c= c

지훈이는 이 정보로 평이 가장 좋은 제품과 가장 나쁜 제품을 가려내려 했지만 거기까지는 알아내지 못했다. 대신 (가장 높은 평점) −- (가장 낮은 평점)의 최솟값을 구하자.

입력

첫째 줄에 NN과 KK가 주어진다. (2≤N≤10002 \le N \le 1000, 1≤K≤30001 \le K \le 3000)

둘째 줄부터 KK개의 줄에 지훈이가 얻은 정보가 위 형식으로 한 줄에 하나씩 주어진다. (1≤a≤N1 \le a \le N, 1≤b≤N1 \le b \le N, ∣c∣≤100|c| \le 100)

출력

모든 정보를 동시에 만족하면서 각 평점이 0 이상 100 이하의 정수인 평점 배정 가운데 (가장 높은 평점) −- (가장 낮은 평점)의 최솟값을 출력한다. 그런 배정이 하나도 없으면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    3 1
    1 2 3 3
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2 1
    3 1 2 0
    
    예상 출력
    0