만드는 중입니다

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

성스러운 불

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

요약
하루 M분이 반복되는 시간표에서 각 바이딜루테의 근무 구간 [s_i, e_i] 안에 들도록 골라, 하루 전체를 빈틈없이 덮는 최소 인원을 구하는 문제입니다. 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

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

문제

고대 발트 신앙에서는 성스러운 불을 계속 피워 두어야 한다. 크리비스라 불리는 사제가 이 불이 꺼지지 않도록 책임진다. 그에게는 바이딜루테라 불리는 믿을 만한 조력자가 많이 있고, 그는 이들이 불을 지피고 지킬 일정을 짜고 싶어 한다. 어느 순간에도 어떤 바이딜루테가 불을 지키고 있어야 한다.

입력

크리비스는 자신만의 시간 체계를 쓴다. 하루는 MM분이다. 마을에는 NN명의 바이딜루테가 있다. ii번째 바이딜루테는 두 정수 sis_i와 eie_i로 정해진 시간대 안에서 일할 수 있다. sis_i는 그녀가 일을 시작할 수 있는 가장 이른 시각이고, eie_i는 일을 끝내야 하는 가장 늦은 시각이다. 시각은 하루가 시작된 뒤 흐른 분으로 센다. si>eis_i > e_i이면 그녀는 밤을 넘겨 일하기를 원한다는 뜻이다.

크리비스는 바이딜루테를 몇 명 골라 근무 교대 일정을 짜 달라고 부탁한다. 선택된 바이딜루테는 sis_i 이후에 근무를 시작하고 eie_i 이전에 근무를 끝내야 한다. 모든 근무는 하루보다 짧다. 선택된 바이딜루테는 매일 같은 근무를 반복한다.

교대할 때마다 불이 꺼질 위험이 커진다. 그래서 크리비스는 하루 동안 교대 횟수를 적게 하고 싶어 하며, 가능한 한 적은 수의 바이딜루테로 움직이는 일정을 원한다.

출력

불이 항상 유지되도록 선택해야 하는 바이딜루테의 최소 인원을 정수 하나로 출력한다. 불가능하면 −1-1을 출력한다.

제한

첫 줄에 NN과 MM이 주어진다. 이어서 NN줄이 주어지며, 그중 ii번째 줄에는 sis_i와 eie_i가 주어진다. 모든 1≤i≤N1 \le i \le N에 대해 1≤N≤2⋅1051 \le N \le 2 \cdot 10^5, 2≤M≤1092 \le M \le 10^9, 0≤si,ei<M0 \le s_i, e_i < M, si≠eis_i \ne e_i이다.

예제2

  1. 예제 1

    입력
    4 100
    10 30
    30 70
    20 40
    60 20
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1 100
    30 40
    
    예상 출력
    -1