编程题
### 问题描述
小然有 $N$ 个空箱子和 $M$ 种不同颜色的彩球,每种颜色的彩球数量为 $A_i$。
如果一个箱子中的所有彩球的颜色都不同,那么我们就称这种将彩球分配给箱子的方式是有效的。
现在,小然想要找出一种有效的分配方式,使得装满 $M$ 种颜色的彩球的箱子数量最少。
### 输入格式
第一行输入两个整数 $N$ 和 $M$,表示箱子的数量和彩球的颜色数量。
第二行输入 $M$ 个整数,分别是 $A_1$,$A_2$,...,$A_M$,表示每种颜色的彩球的数量。
### 输出格式
输出一个整数,表示在有效的分配方式中,装满 $M$ 种颜色的彩球的箱子数量的最小值。
### 样例输入
```markdown
5 3
5 4 4
```
### 样例输出
```markdown
3
```
### 说明
样例中有 $5$ 个箱子和 $3$ 种颜色的彩球。一种使得装满 $M$ 种颜色的彩球的箱子数量最小的分配方式是:
- 箱子 $1$ 包含颜色为 $1、2、3$ 的彩球。
- 箱子 $2$ 包含颜色为 $1、2、3$ 的彩球。
- 箱子 $3$ 包含颜色为 $1、2、3$ 的彩球。
- 箱子 $4$ 包含颜色为 $1、3$ 的彩球。
- 箱子 $5$ 包含颜色为 $1、2$ 的彩球。
从这个分配方式中,我们可以看到,箱子 $1、2、3$ 包含了 $M$ 种颜色的彩球,因此,答案是 $3$。
### 评测数据范围
$1 \leq N, M \leq 3 \times 10^5$。
$1 \leq A_i \leq 10^6$。