[POI2018] Prawnicy

题目背景

**题目译自 [POI XXV - I etap](https://sio2.mimuw.edu.pl/c/oi25-1/dashboard/) 「[Prawnicy](https://sio2.mimuw.edu.pl/c/oi25-1/p/pra/)」**

题目描述

“Bajtazar 父子”律师事务所刚刚收到一位非常重要的客户的订单。案件严重、紧急,需要与律师事务所的律师举行会议。每个律师都有一段固定的空闲时间可以参加会议。你应该选择这样的 $k$ 位律师,以便召开会议的时间(即他们都空闲的时间)尽可能长。 [简要题意](https://www.luogu.com.cn/problem/U252799)

输入输出格式

输入格式


第一行包含两个整数 $n$ 和 $k\ (1\le k\le n)$,以一个空格隔开,表示事务所雇用的律师人数和召开会议所需的律师人数。 接下来 $n$ 行,第 $i$ 行包含两个整数 $a_i$ 和 $b_i\ (1\le a_i<b_i\le 10^9)$,以一个空格隔开,表示第 $i$ 个律师在**时刻 $a_i$ 和时刻 $b_i$ 之间**是空闲的。

输出格式


第一行输出一个整数,表示会议可能的最大时长。你可以假设你能够召开至少 $1$ 人的会议。 第二行输出空格分隔的 $k$ 个数,代表参加会议的律师编号(从 $1$ 开始)。如果有多个正确答案,您的程序应输出其中任何一个。

输入输出样例

输入样例 #1

6 3
3 8
4 12
2 6
1 10
5 9
11 12

输出样例 #1

4
1 2 4

说明

#### 样例解释 三位律师会议可能的最大时长是 $4$。编号为 $1$、$2$ 和 $4$ 的律师可以参加,持续时间从 $4$ 到 $8$。另一个同样好的方案是让编号为 $2$、$4$ 和 $5$ 的律师参加,持续时间从 $5$ 到 $9$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/187yuqy1.png) #### 附加样例 参见 `pra/pra*.in` 和 `pra/pra*.out`: - 附加样例 $1$:$1$ 组数据,$n=7$,$k=3$,且选择律师的方案有两种。 - 附加样例 $2$:$1$ 组数据,$n=k=1000$,$a_i=i$,$b_i=10^6+i$; - 附加样例 $3$:$1$ 组数据,$n=1000$,$k=1$,$a_i=2i-1$,$b_i=2i$; #### 数据范围与提示 测试集分为以下子任务。每个子任务的测试由一个或多个单独的测试组组成。 | Subtask # | 额外限制 | 分值 | |:---------:|:----------------------------:|:---:| | $1$ | $n\le 20$ | $20$ | | $2$ | $n\le 300$,$a_i,b_i\le 300$ | $15$ | | $3$ | $n\le 5000$ | $15$ | | $4$ | $n\le 10^6$,$k\in \{1,n\}$ | $15$ | | $5$ | $n\le 10^6$ | $35$ | 如果你的程序在第一行输出了正确的时长,但其余的输出是错误的,那么你将获得 $40\%$ 的分数。