#P8009. 擦护栏

擦护栏

题目描述

Jzyz的所有学生获得了一个大扫除的机会——去大街擦护栏。

Jz市大街被分成了M段,每段的长度不一定相同。Jzyz一共有N名学生参加劳动,这些学生将分成M组来完成这项工作,因为长度不同,分配的任务量肯定不同,现在,负责这次大扫除的老师想知道,擦护栏长度最多的同学最少必须擦多长的护栏,这样才能保证尽可能的公平。当然,可以有学生当拉拉队,不用擦护栏,但是每段护栏必须要擦干净。

比如:有5名学生,2段护栏,第一段长度为7,第二段长度为4.可以让3个人负责擦长度为7的,2个人负责长度为4的,那么擦第一段的某个人必须要擦长度为3 的护栏,而其他的人擦长度为2 的护栏。这样就有1位同学必须擦长度为3的护栏。

输入格式

第一行:两个整数N和M(1 ≤ N ≤ 10^9) (1 ≤ M ≤ 300 000, M ≤ N)

接下来M行,每行一个整数,表示每段护栏的长度,保证护栏的长度在[1,10^9] 之间。

输出格式

一个整数,如题目描述,任务量最重的同学擦护栏长度的最小值。

样例

input

7 5
7
1
7
4
4

output

4

限制与提示

20% 数据保证 N<=30 M<=20

40% 数据保证 N<=10000 M<=1000

100%数据保证 如题目描述

时间限制:1s1 \text {s}

空间限制:256MB256 \text {MB}