강의실 2

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

문제

N개의 강의가 있다. 각 강의의 시작 시각과 종료 시각이 주어질 때, 모든 강의를 진행하기 위해 필요한 강의실 수를 최소로 하고 싶다.

한 강의실에서는 동시에 두 개 이상의 강의를 진행할 수 없다. 단, 한 강의가 끝나는 시각과 다른 강의가 시작하는 시각이 같다면 두 강의는 같은 강의실을 사용할 수 있다.

필요한 최소 강의실 수 K와 각 강의에 배정할 강의실 번호를 구하라.

입력

첫째 줄에 강의의 개수 N이 주어진다. 1 <= N <= 100,000이다.

둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 정수 i, s, e가 주어진다. 이는 강의 번호가 i, 시작 시각이 s, 종료 시각이 e라는 뜻이다.

강의 번호는 1부터 N까지이며, 입력에서 순서대로 주어지지 않을 수 있지만 각 번호는 정확히 한 번씩만 주어진다. 시작 시각과 종료 시각은 0 이상 1,000,000,000 이하의 정수이고, 항상 s < e이다.

출력

첫째 줄에 필요한 최소 강의실 수 K를 출력한다.

다음 N개의 줄에는 강의 번호 1부터 N까지 차례대로, 각 강의에 배정한 강의실 번호를 한 줄에 하나씩 출력한다. 강의실 번호는 1부터 K까지의 정수이다.