时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在斗地主中连续的一组数组叫顺子,如[3,4,5,6,7], [9,8,7,6,5];
在这里为了方便将 1, 2 也记入顺子中,且顺子长度没有任何限制,如 [1,2,3], [5] 均是顺子
可这样求最长顺子长度太无趣了...
于是聪明的你引入了鬼牌的概念、鬼可以变为 1 到 m 中任何你想要的牌
好了,现在求可以组成的最长顺子长度

--赛后补充:
题目中最长顺子中的牌可以是原本中任意一张牌or鬼牌,组成的顺子必须连续无中断(排序后为公差为1的等差数列)

输入描述:

第一行输入 n,m,k,分别表示有 n 张牌介于 1 到 m 之间,另外有 k 张鬼牌 (共n+k张牌)
第二行输入 n 个正整数 a_i,表示 n 张牌的点数
1\le n \le 5× 10^5; 1\le m\le 2×10^9; 0\le k\le 2×10^9;1\le a_i \le m

输出描述:

输出一个非负整数表示可行顺子的最大长度
示例1

输入

复制
3 3 0
1 2 3

输出

复制
3
示例2

输入

复制
3 5 1
1 3 5

输出

复制
3

说明

鬼牌变 4,组成 [3, 4, 5]的三顺子
示例3

输入

复制
1 3 5
1

输出

复制
3

说明

鬼牌只能变1或2或3,故最大长度为3
示例4

输入

复制
5 13 0
10 11 12 13 1

输出

复制
4

备注:

本题输入量较大,请使用较快的读入方式
本题的顺子可能与你认识的顺子不一样,请仔细阅读本题中顺子定义。