#P1031. 公平分糖

公平分糖

在一次校园活动中,老师收到了许多不同口味的糖果,准备分发给同学们。为了避免同学之间产生攀比心理,老师希望设计一种“尽量公平”的分配方案。

共有 MM 种不同口味的糖果,第 ii 种糖果有 aia_i 颗。

现在需要将这些糖果分给 NN 位同学,要求如下:

  • 每位同学只能拿到同一种口味的糖果;
  • 某些同学可以分不到糖果;
  • 每种糖果可以分给多个同学(即同一种口味可以被拆分)。
  • 所有糖果必须分完

定义一种分配方案的“不公平度”为:某个同学拿到的糖果数量的最大值。

你的任务是:在所有合法分配方案中,使“不公平度”尽可能小,并输出这个最小值。

输入格式

第一行两个整数 N,MN,M,表示同学数量和糖果种类数。 接下来 MM 行,每行一个整数 aia_i,表示第 ii 种糖果的数量。

输出格式

输出一个整数,表示最小可能的不公平度。

样例组

输入#1

5 2
7
4

输出#1

3

输入#2

7 5
7
1
7
4
4

输出#2

4

提示说明

在第一个样例中,可以将糖果分配为:

两位同学各拿 22 颗第一种糖果; 两位同学各拿 22 颗第二种糖果; 一位同学拿 33 颗第一种糖果; 此时最大值为 33,且无法进一步降低。

数据范围

  • 1M3×1051\leq M\leq 3\times 10^5
  • 1N1091\leq N\leq 10^9
  • MNM\leq N
  • 1ai1091\leq a_i\leq 10^9