一个工厂仓库里有大量空箱子。这些箱子排成一排。仓库管理员想要将一些箱子放入其他箱子中,以便在仓库的左端腾出一些空闲空间。箱子可以由机器人移动,机器人可以拿起一个箱子,将其向右移动,然后放入一个更大的箱子中。这三个操作的序列是唯一允许的移动箱子的方式。
由于安全规定,任何箱子最多只能容纳一个其他箱子,且被放入的箱子必须是空的(即不能多重嵌套)。管理员还希望将套好的双重箱子保持在最终序列的左端,以便于记录它们。
你需要编写一个程序,计算最大的可能整数 $K$,使得最左侧的 $K$ 个箱子可以按某种顺序被放入紧随其后的 $K$ 个箱子中。
输入格式
第一行包含两个由空格隔开的整数:$M$($1 \le M \le 1000$),表示最大箱子的尺寸;以及 $N$($1 \le N \le 20\,000$),表示箱子的数量。
第二行包含 $N$ 个由空格隔开的整数 $A_i$($1 \le A_i \le M$),表示从左到右每个箱子的尺寸。
输出格式
输出仅包含一个整数,即最大的数量 $K$,使得机器人可以将最左侧的 $K$ 个箱子放入接下来的 $K$ 个箱子中。
样例
输入样例 1
5 10 2 2 1 4 3 2 5 4 2 3
输出样例 1
4