아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

검사관

시간 제한5초메모리 제한128 MB

요약
각 진술은 특정 시각에 프로그래머 j가 다른 i명과 함께 있었다는 내용이며, 이 진술들이 모두 참이 되는 가장 긴 앞부분의 길이를 구한다.
난이도

어려움10점 중 8점

유형
구간, 완전 탐색, 그리디, 구현
정답자
아직 제출이 없습니다

문제

검사관 바이트아사르(Byteasar)는 어느 소프트웨어 회사에서 일어난 사건을 수사하며 사건의 전개 과정을 재구성하려 한다. 그런데 프로그래머들은 하나같이 덤벙대는 편이라, 그들에게서 얻을 수 있는 가장 쓸모 있는 정보라고 해봐야 "14시 42분에 시계를 봤을 때, 서버에는 저 말고 다른 프로그래머 다섯 명이 접속해 있었어요." 같은 진술이 전부다.

프로그래머는 각자 그날 하루 중 한 번 사무실에 와서, 중간에 나가는 일 없이 연속된 시간 동안 머문 뒤, 완전히 퇴근하며 그날은 다시 돌아오지 않는다.

바이트아사르는 이 진술들을 얼마나 믿어야 할지 확신이 서지 않는다. 그는 우선 이 진술들이 모두 동시에 참일 수 있는지부터 알고 싶다. 그가 판단할 수 있도록 도와주자.

입력

첫째 줄에 테스트 케이스의 수 zz (1≤z≤501 \le z \le 50)가 주어진다. 이어서 zz개의 테스트 케이스가 차례로 주어진다.

각 테스트 케이스의 첫째 줄에는 두 정수 nn과 mm (1≤n,m≤100 0001 \le n, m \le 100\,000)이 주어진다. 각각 사무실에서 일하는 프로그래머의 수와 바이트아사르가 기록한 진술의 수이다. 프로그래머는 11번부터 nn번까지 번호가 매겨져 있다.

다음 mm개의 줄에는 각각 하나의 진술이 세 정수 tt, jj, ii (1≤t≤m1 \le t \le m, 1≤j≤n1 \le j \le n, 0≤i≤n0 \le i \le n)로 주어진다. 이는 프로그래머 jj가 "시각 tt에 나는 사무실에 있었고, 나 말고 다른 프로그래머가 정확히 ii명 더 있었다"라고 진술했음을 뜻한다. 모든 프로그래머가 출근하고 퇴근하는 시각은 진술에 등장하는 모든 시각과 서로 다르다. 즉 각 프로그래머의 출입 시각은 진술 시각들보다 앞서거나, 뒤서거나, 그 사이의 어느 시점이다.

출력

각 테스트 케이스마다 한 줄에 양의 정수 kk (1≤k≤m1 \le k \le m) 하나를 출력한다. 이는 앞에서부터 동시에 모두 참일 수 있는 진술의 최대 개수이다. 다시 말해 처음 kk개의 진술은 동시에 성립할 수 있지만, 처음 k+1k+1개는 그럴 수 없다. 만약 mm개의 진술이 모두 동시에 참일 수 있다면 mm을 출력한다.

힌트

첫 번째 예제에서는 처음 네 진술까지는 동시에 성립할 수 있지만, 다섯 번째 진술을 더하면 모순이 생긴다. 그 경우 프로그래머 11번과 22번이 모두 시각 11부터 시각 44까지 사무실에 있어야 하므로, 시각 22에는 사무실에 적어도 세 명(11번, 22번, 33번)이 있게 된다. 이는 시각 22에 자기 말고 다른 프로그래머가 한 명뿐이었다는 프로그래머 33번의 진술과 어긋난다. 따라서 답은 44이다.

두 번째 예제에서는 세 진술이 서로 모순되지 않으므로 답은 33이다.

예제3

  1. 예제 1

    입력
    2
    3 5
    1 1 1
    1 2 1
    2 3 1
    4 1 1
    4 2 1
    3 3
    3 3 0
    2 2 0
    1 1 0
    
    예상 출력
    4
    3
    
  2. 예제 2

    입력
    1
    5 1
    1 1 0
    
    예상 출력
    1
    
  3. 예제 3

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