#1890. 书架

书架

题目描述

为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了很多年的 nn 本书放到上课教室的书架上去。

教室的书架是​一层一层叠起来的​,每一层最多可以放 mm 本书。​每一层的高度由放在这层中最高的那本书决定的​,如果不放书,则认为这层的高度为 00。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。

请编程计算将这 nn 本书放在书架上后书架的最小总高度,​计算的过程中不考虑书的厚度与书架本身材料的厚度​。

输入格式

输入共 n+1n+1 行。

1122 个整数 nnm(1mn100000)m(1≤m≤n≤100000)

接下来 nn 行,每行 11 个正整数,分别表示每本书的高度(​每本书的高度不超过 100100​)。

输出格式

输出共 11 行,表示将 nn 本书放入书架后书架的最小总高度。

3 2
20
10
30
40

样例解释

将高度是 30302020 的两本书放在一层,则这层的高度为 3030,将高度是 1010 的那本书放在另外一层,则这层的高度为 1010,则书架的总高度为 4040,满足最小。

数据范围

每本书的高度为不超过 100100 的正整数。

对于 70%70\% 的数据,1mn10001≤m≤n≤1000

对于 100%100\% 的数据,1mn1000001≤m≤n≤100000