스파이

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

어려움8최단 경로그래프이분 탐색수학아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

석주가 회장으로 있는 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

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

입력

첫째 줄에 NNKK가 주어진다. (2N10002 \le N \le 1000, 1K30001 \le K \le 3000)

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

출력

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