#P50780. 「BalticOI 2010」箱子 bins

「BalticOI 2010」箱子 bins

题目描述

工厂仓库中有大量空箱子,箱子排列在一行里。仓库的经理想把一些箱子放入其他箱子中,以在仓库的左端腾出一些空间。机器人可以拿起箱子、向右移动,并把它放进一个更大的垃圾箱。只允许以这种方式移动垃圾箱。
由于安全方面的规定,任何箱子最多可容纳一个箱子,且这个箱子必须是空的。
经理也希望所有双箱子放在最左端,来方便跟踪他们。
你要编写一个程序来计算最大可能的 KK,使最左边的 KK 个箱子可以按照某种顺序放入紧接着的 KK 个箱子中。

输入格式

第一行包含用空格分隔的两个整数:M(1M10001 \le M \le 1000),表示最大箱子的大小,以及箱子数 NN1N200001 \le N \le 20000)。
第二行包含 NN 个整数 AiA_i1AiM1 \le Ai \le M),用空格分隔,从左至右表示箱子的大小。

输出格式

输出一行一个整数,表示最大的整数 KK,使得机器人可以将最左边的 KK 个箱子放入紧接着的 KK 个箱子中。

样例

5 10
2 2 1 4 3 2 5 4 2 3
4