编程题
### 问题描述
某班级有 $n$ 名学生,学生从 $1$ 到 $n$ 编号,编号为 $i$ 的学生有聪明值 $a_i$ ,初始时学生按照聪明值从低到高进行排序。
但是班级内部不是特别团结,特别是老师将他们分成了 $k$ 个连续的小组之后。每隔一段时间每个小组就会发生一次吵架事件,吵架发生后,每个小组都会损失部分睿智度,损失的睿智度为学生聪明值最高者与最低者的聪明值之差。
假如你是老师,现在面对这样一个聪明值从低到高排列的班级,需要把他们分成 $k$ 个小组。你应如何分配,才能使每次吵架事件发生后, $k$ 个小组的睿智度损失最小。
要求 $k$ 个小组中,每个小组都不能为空,且每名学生都必须在一个小组中。
### 输入格式
第一行包含两个整数 $n,k$ ,分别表示学生总人数和需要分成的小组数。
第二行包含 $n$ 个整数 $a_1,a_2,…,a_n$ ,表示班级中学生的聪明值。保证这些数据按照非降序排列,即若有 $i>1$ ,必有 $a_i\geq a_{i-1}$ 。
### 输出格式
输出一个整数,表示使得 $k$ 个小组睿智度损失最小时的损失之和。
### 样例输入
```
6 3
4 8 15 16 23 42
```
### 样例输出
```
12
```
### 评测数据规模
对于所有的评测数据, $1\leq{k}\leq{n}\leq{10^5 },1\leq{a_i}\leq{10^9 }$ 。