你的朋友 Emil 有一大堆闹钟,它们会在不同的时间响起,用来叫醒他或提醒他各种事情。他向你发起挑战,让你从中选择一些闹钟并花一些时间与它们相处。你决定选择这些闹钟,使得存在一段尽可能长的无人打扰的时间段,这样你就可以好好睡一觉。
Emil 有 $N$ 个闹钟。挑战的内容是选择其中的 $K$ 个闹钟,并与它们相处 $T$ 秒。这 $T$ 秒是 $t=0$ 到 $t=T$ 之间的连续时间间隔。Emil 的第 $i$ 个闹钟会在时间点 $t_1, t_2, \dots, t_{m_i}$ 响起,其中 $m_i$ 是一个正整数。你的任务是找到一个时间间隔 $(L, R)$,满足 $0 \leq L \leq R \leq T$,使得在这段时间内你选择的 $K$ 个闹钟都不会响起,并求出该间隔长度的最大值。注意,时间间隔是开区间(即包含所有满足 $L < t < R$ 的时间 $t$)。因此,闹钟在 $t = L$ 或 $t = R$ 时响起是可以的。
输入格式
第一行包含三个整数 $N$、$K$ 和 $T$ ($1 \leq K \leq N \leq 3 \cdot 10^5$, $1 \leq T \leq 10^9$)。它们分别代表 Emil 拥有的闹钟总数、你需要选择的闹钟数量,以及挑战持续的时间。
接下来的 $N$ 行,每行包含一个正整数 $m_i$,随后是 $m_i$ 个整数 $t_1, t_2, \dots, t_{m_i}$ ($1 \leq m_i \leq 3 \cdot 10^5$, $0 \leq t_1 < t_2 < \dots < t_{m_i} \leq T$)。这些是第 $i$ 个闹钟响起的时刻。
所有 $m_i$ 的总和不超过 $3 \cdot 10^5$。
输出格式
输出一个整数,表示在最优选择 $K$ 个闹钟的情况下,无人打扰的时间间隔的最大长度。
子任务
你的解法将在多组测试数据上进行测试。要获得某一组的分数,你必须通过该组中的所有测试用例。
| Group | Points | Constraints |
|---|---|---|
| 1 | 18 | $K = N$ |
| 2 | 27 | 对于所有 $1 \leq i \leq N$,$m_i = 1$。 |
| 3 | 20 | 所有 $m_i$ 的总和不超过 $300$。 |
| 4 | 35 | 无额外限制。 |
样例
样例输入 1
3 2 5 1 1 1 4 2 2 3
样例输出 1
3
样例输入 2
2 2 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7
样例输出 2
1
样例输入 3
3 2 100 1 10 3 0 2 3 4 3 5 6 8
样例输出 3
92
说明
在第一个样例中,最优策略是选择前两个闹钟。这样,时间间隔 $(1,4)$ 是无人打扰的。该间隔长度为 $3$,且无法获得更长的无人打扰时间间隔。
在第二个样例中,两个闹钟在每个整数时刻都会响起,且你必须选择这两个闹钟。在这种情况下,唯一的无人打扰时间间隔是在相邻整数之间。这些间隔的长度均为 $1$。
在第三个样例中,挑战持续 $100$ 秒,但所有闹钟只在前 $10$ 秒内响起。最优策略是选择最后两个闹钟,使得间隔 $(8,100)$ 是无人打扰的。