성스러운 불
시간 제한2초메모리 제한1024 MB
하루 M분이 반복되는 시간표에서 각 바이딜루테의 근무 구간 [s_i, e_i] 안에 들도록 골라, 하루 전체를 빈틈없이 덮는 최소 인원을 구하는 문제입니다. 불가능하면 -1을 출력합니다.
문제
고대 발트 신앙에서는 성스러운 불을 계속 피워 두어야 한다. 크리비스라 불리는 사제가 이 불이 꺼지지 않도록 책임진다. 그에게는 바이딜루테라 불리는 믿을 만한 조력자가 많이 있고, 그는 이들이 불을 지피고 지킬 일정을 짜고 싶어 한다. 어느 순간에도 어떤 바이딜루테가 불을 지키고 있어야 한다.
입력
크리비스는 자신만의 시간 체계를 쓴다. 하루는 분이다. 마을에는 명의 바이딜루테가 있다. 번째 바이딜루테는 두 정수 와 로 정해진 시간대 안에서 일할 수 있다. 는 그녀가 일을 시작할 수 있는 가장 이른 시각이고, 는 일을 끝내야 하는 가장 늦은 시각이다. 시각은 하루가 시작된 뒤 흐른 분으로 센다. 이면 그녀는 밤을 넘겨 일하기를 원한다는 뜻이다.
크리비스는 바이딜루테를 몇 명 골라 근무 교대 일정을 짜 달라고 부탁한다. 선택된 바이딜루테는 이후에 근무를 시작하고 이전에 근무를 끝내야 한다. 모든 근무는 하루보다 짧다. 선택된 바이딜루테는 매일 같은 근무를 반복한다.
교대할 때마다 불이 꺼질 위험이 커진다. 그래서 크리비스는 하루 동안 교대 횟수를 적게 하고 싶어 하며, 가능한 한 적은 수의 바이딜루테로 움직이는 일정을 원한다.
출력
불이 항상 유지되도록 선택해야 하는 바이딜루테의 최소 인원을 정수 하나로 출력한다. 불가능하면 을 출력한다.
제한
첫 줄에 과 이 주어진다. 이어서 줄이 주어지며, 그중 번째 줄에는 와 가 주어진다. 모든 에 대해 , , , 이다.