学校科技节即将开幕,科学馆展厅全天共开放 T 个时间段(编号 1 到 T)。小 L 是讲解队的负责人,队里共有 N 名讲解员报名参加。
由于每名讲解员还要参加自己班级的活动,第 i 名讲解员只能在时间段 S_i 到 E_i(含两端)内到场讲解。展厅开放期间,每个时间段都必须至少有一名讲解员在场,否则参观的同学就没人接待了。
一名讲解员一旦被安排,就会在自己空闲的整个时间段 [S_i, E_i] 内到场。为了让更多同学能去参观其他展区,小 L 希望安排的讲解员人数尽可能少。
请你帮小 L 算出最少需要安排多少名讲解员。如果无论如何安排都无法保证每个时间段都有人在场,输出 -1。
第 1 行:两个整数 N,T。
第 2 到 N+1 行:每行两个整数 S_i,E_i,表示第 i 名讲解员的空闲时间段。
一行,一个整数,表示最少安排的讲解员人数;若无法覆盖所有时间段,输出 -1。
4 12 1 5 4 9 6 10 9 12
3
6 15 1 4 3 8 10 15 2 5 11 14 4 7
-1
12 30 2 6 1 3 4 9 8 14 5 7 10 17 15 21 22 26 19 25 24 30 6 12 27 29
6
样例 1:安排第 1 名(覆盖 1\sim 5)、第 3 名(覆盖 6\sim 10)、第 4 名(覆盖 9\sim 12)讲解员,恰好覆盖全部 12 个时间段。要覆盖时间段 1 只能选第 1 名讲解员,而剩下没有任何一名讲解员能独自覆盖 6\sim 12,因此两人不够,最少为 3 人。
样例 2:6 名讲解员的空闲时间合起来是 1\sim 8 和 10\sim 15,时间段 9 没有任何讲解员空闲,无法安排,输出 -1。注意判断无解时要逐段检查覆盖是否"断开",而不能只看最早和最晚的时间。
对于 100\% 的数据,1 \le N \le 2.5\times 10^4,1 \le T \le 10^6,1 \le S_i \le E_i \le T。
本题共 10 个测试点,每个测试点 10 分。具体数据范围如下:
| 测试点编号 | N \le | T \le | 特殊性质 |
|---|---|---|---|
| 1 | 20 | 10^3 | 无 |
| 2 | 10 | 10^6 | 无 |
| 3 | 100 | 100 | 无 |
| 4 | 10^3 | 10^6 | A |
| 5 | 10^3 | 10^6 | B |
| 6 | 10^3 | 10^6 | 无 |
| 7 | 10^3 | 10^6 | 无 |
| 8 | 2.5\times 10^4 | 10^6 | B |
| 9 | 2.5\times 10^4 | 10^6 | 无 |
| 10 | 2.5\times 10^4 | 10^6 | 无 |
特殊性质 A:存在一名讲解员的空闲时间段为 [1,T]。
特殊性质 B:没有任何一名讲解员能够覆盖时间段 1。