만드는 중입니다

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

변호사

면접 대비

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

요약
각 날짜마다 회의 두 개가 겹치지 않게 잡을 수 있는지 판정하고, 가능하면 시작이 빠른 회의 번호가 가장 작은 쌍을, 그다음으로 늦은 회의 번호가 가장 작은 쌍을 출력한다.
난이도

보통10점 중 5점

유형
정렬, 그리디, 배열, 구현
정답자
아직 제출이 없습니다

문제

Byteasar는 법률 사무소 Byteasar and Associates의 공동 소유주인 변호사다. Byteotia 변호사 협회에서 가장 많이 찾는 변호사 중 한 명이라서 늘 매우 바쁘다. 매일 여러 회의에 관여하지만, 모든 회의에 참석할 수 있는지는 이미 오래전부터 관리하지 못하고 있다. 그래서 이 혼란을 정리해 줄 비서를 고용했다. Byteasar는 매일 회의 두 개에만 참석하되, 참석하는 회의는 시작부터 끝까지 빠짐없이 함께하기로 정했다. 나머지 회의는 사무소에 넉넉히 있는 보조 변호사가 맡는다.

그런데 Byteasar의 빽빽한 일정에서는 겹치지 않는 두 회의를 찾는 일조차 어려울 때가 있다. 두 회의는 한 회의가 다른 회의가 끝난 뒤에 엄격히 늦게 시작할 때에만 겹치지 않는다고 본다. Byteasar의 비서를 도와 이 문제를 처리하는 프로그램을 작성하자.

입력

첫째 줄에 두 정수 n과 m이 주어진다. (2 ≤ n ≤ 500,000, 1 ≤ m ≤ 20) n은 Byteasar의 일정에 있는 회의의 수, m은 일정에 포함된 날의 수다.

다음 n개 줄에 회의가 하나씩 주어진다. 각 줄은 세 정수 aia_i, bib_i, did_i로 이루어지며 (1 ≤ aia_i < bib_i ≤ 80,000,000, 1 ≤ did_i ≤ m), did_i번째 날에 자정으로부터 정확히 aia_i밀리초 뒤에 시작해서 자정으로부터 bib_i밀리초 뒤에 끝나는 회의가 있다는 뜻이다.

출력

m개 줄을 출력한다. i번째 줄에는 i번째 날에 Byteasar가 두 회의에 참석할 수 있는지를 출력한다. 불가능하면 NIE(폴란드어로 아니오) 한 단어만 출력한다. 가능하면 TAK(폴란드어로 예)을 출력하고, 이어서 Byteasar가 참석할 두 회의의 번호 p와 q를 출력한다. 회의 번호는 입력 순서대로 1부터 n까지 매긴다. p는 두 회의 중 먼저 시작하는 회의이고, q번 회의는 p번 회의가 끝난 뒤 적어도 1밀리초가 지나서 시작해야 한다. 즉 bp<aqb_p < a_q여야 한다.

조건을 만족하는 쌍 (p, q)가 여러 개이면 p가 가장 작은 쌍을 고르고, 그중에서도 q가 가장 작은 쌍을 출력한다. p가 q보다 클 수도 있다.

예제3

  1. 예제 1

    입력
    6 3
    3 5 1
    2 4 2
    1 8 1
    6 7 3
    3 5 2
    7 12 1
    
    예상 출력
    TAK 1 6
    NIE
    NIE
    
  2. 예제 2

    입력
    3 1
    1 5 1
    5 9 1
    6 7 1
    
    예상 출력
    TAK 1 3
    
  3. 예제 3

    입력
    3 1
    10 20 1
    1 2 1
    3 4 1
    
    예상 출력
    TAK 2 1