编程题
### 问题描述
假设你是一名农场主,你有一块长方形土地四周围有围墙,长为 $L$ 米,宽为 $1$ 米。其中已经存在了一些栅栏将其分隔为不同区域。
为了方便管理,你需要让所有的 $N$ 头牛都待在单独的面积相同的区域中,并且每个区域只能有一头牛。你可以再向其中添加一些栅栏,但不能移除原有的栅栏。存在一些空闲区域。
现在,你需要添加栅栏重新分隔区域后,求出每头牛的活动区域长度的最大值。如果没有分隔方案可以实现所有要求,则输出 $-1$。
### 输入格式
第一行中输入两个整数 $N$ 和 $M$,表示牛的数量和目前已经划分区域的数量。
第二行输入 $M$ 个正整数 $a_1,a_2,\cdots,a_i,\cdots,a_M$ 表示每个区域的长度。
### 输出格式
输出仅一行,包含一个整数 $x$,表示每头牛所在区域的最大值,没有则输出 $-1$。
### 样例输入
```
4 3
6 9 8
```
### 样例输出
```
4
```
### 样例说明
第一个区域长度为 $6$,可以划分为一个长度为 $4$ 和一个长度为 $2$ 的区域。第二个区域长度为 $9$,可以划分为两个长度为 $4$ 和一个长度为 $1$ 的区域。第三个区域长度为 $8$,可以划分为两个长度为 $4$ 的区域。通过划分,我们可以得到 $5$ 个长度为 $4$ 的区域,足以容纳所有 $4$ 头牛。因此,输出是 $4$,这已经是最优方案。
### 评测数据规模
$1 \leq N \leq 10^5$,$1 \leq M \leq 10^5$,$1 \leq a_i \leq 10^5$。