编程题
### 问题描述
在一个古老的宇宙探索任务中,一支勇敢的宇航员队伍正在一颗奇特的星球上探索。这颗星球上的特殊资源是一种神秘的能量晶体,这些晶体只能通过切割得到。
现在,宇航员队伍拥有 $n$ 块晶体,他们希望将这些晶体切割成 $k$ 块具有相同长度的小晶体(允许有剩余)。为了最大化资源的价值,他们想要得到尽可能长的小晶体,因此需要找到切割后小晶体的最大长度。
晶体的长度单位是 $1$,而且晶体和小晶体都只能以整数倍的单位长度为切割间隔。为了确保资源被最大程度利用,宇航员们需要找到最大的长度 $l$,使得可以切割出 $k$ 块长度为 $l$ 的小晶体。
请编写一个程序,帮助宇航员确定最大的切割长度 $l$。
### 输入格式
第一行包含两个正整数 $n$ 和 $k$,分别表示晶体的数量和需要得到的小晶体的数量。
接下来 $n$ 行,每行一个正整数 $C_i$,表示一块晶体的长度。
### 输出格式
仅一行,即 $l$ 的最大值。
如果无法切割出长度为 $l$ 的小晶体,输出 $0$。
### 样例输入
```text
4 6
12
16
20
24
```
### 样例输出
```text
10
```
### 说明
在这个例子中,宇航员队伍有 $4$ 块晶体,需要切割成 $6$ 块小晶体。最大的单位长度 $l$ 是 $10$,因为可以将所有晶体都切成长度为 $10$ 的小晶体。
### 评测数据规模
对于 $100$% 的评测数据,$1\le n\le 10^5$,$1\le k\le 10^6$,$1\le C_i\le 10^7$。