#p270. 例题6.2.3 最佳调度

例题6.2.3 最佳调度

题目描述

假设有n 个任务由k 个可并行工作的机器完成。

完成任务i 需要的时间为ti。

试设计一个算法找出完成这n 个任务的最佳调度,使得完成全部任务的时间最早。

一旦任务i由某台机器完成,中途不能更换机器。

编程任务:

对任意给定的整数n 和k,以及完成任务i 需要的时间为ti,i=1~n 。编程计算完成这n个任务的最佳调度

输入格式

第一行有2 个正整数n 和k。

第2 行的n 个正整数是完成n 个任务需要的时间。

输出格式

完成全部任务的最早时间。

样例数据

input


7 3

2 14 4 16 6 5 3

output


17

input


5 2

8 9 3 7 7

output


17

数据规模与约定

保证n<=20k<=10n<=20, k<=10

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

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