#include <stdio.h>
#include <assert.h>
#include <algorithm>
using namespace std;
typedef long long ll;
#define rep(i, n) for(int i = 0; i < n; i++)
ll d[1111];
ll t[1111][1111];
ll dp[1111][1111];
int mind(ll* pre, int b, int l, int g) {
ll mm = (ll)1 << 60;
int mb = -1;
for(int i = b; i <= l; i++) {
if(mm > pre[i] + t[i][g]) {
mm = pre[i] + t[i][g];
mb = i;
}
}
return mb;
}
void step_dfs(int b, int l, int mb, int ml, ll* pre, ll* nex) {
if(b > l) {return;}
int m = (b + l) / 2;
int w = mind(pre, mb, ml, m);
assert(w != -1);
nex[m] = pre[w] + t[w][m];
step_dfs(b, m - 1, mb, w, pre, nex);
step_dfs(m + 1, l, w, ml, pre, nex);
}
void step(ll* pre, ll* nex, int n) {
step_dfs(0, n, 0, n, pre, nex);
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
if(m > n) {
m = n;
}
rep(i, n) {
scanf("%lld", d + i);
}
sort(d, d + n);
rep(i, n) {
rep(j, n) {
t[i][j] = 0;
}
}
rep(k, n * 2 - 1) {
int a = k / 2;
if(k % 2 == 0) {
t[a][a + 1] = 0;
for(int i = 1; a - i >= 0 && a + 1 + i <= n; i++) {
t[a - i][a + 1 + i] = t[a - (i - 1)][a + 1 + (i - 1)] + d[a + i] - d[a - i];
}
}
else {
t[a][a + 2] = d[a + 1] - d[a];
for(int i = 1; a - i >= 0 && a + 2 + i <= n; i++) {
t[a - i][a + 2 + i] = t[a - (i - 1)][a + 2 + (i - 1)] + d[a + 1 + i] - d[a - i];
}
}
}
dp[0][0] = 0;
rep(i, n) {
dp[0][i + 1] = (ll)1 << 60;
}
rep(i, m) {
step(dp[i], dp[i + 1], n);
}
printf("%lld\n", dp[m][n]);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhc3NlcnQuaD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCiNkZWZpbmUgcmVwKGksIG4pIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgpsbCBkWzExMTFdOwpsbCB0WzExMTFdWzExMTFdOwpsbCBkcFsxMTExXVsxMTExXTsKCmludCBtaW5kKGxsKiBwcmUsIGludCBiLCBpbnQgbCwgaW50IGcpIHsKICBsbCBtbSA9IChsbCkxIDw8IDYwOwogIGludCBtYiA9IC0xOwogIGZvcihpbnQgaSA9IGI7IGkgPD0gbDsgaSsrKSB7CiAgICBpZihtbSA+IHByZVtpXSArIHRbaV1bZ10pIHsKICAgICAgbW0gPSBwcmVbaV0gKyB0W2ldW2ddOwogICAgICBtYiA9IGk7CiAgICB9CiAgfQogIHJldHVybiBtYjsKfQoKdm9pZCBzdGVwX2RmcyhpbnQgYiwgaW50IGwsIGludCBtYiwgaW50IG1sLCBsbCogcHJlLCBsbCogbmV4KSB7CiAgaWYoYiA+IGwpIHtyZXR1cm47fQogIGludCBtID0gKGIgKyBsKSAvIDI7CiAgaW50IHcgPSBtaW5kKHByZSwgbWIsIG1sLCBtKTsKICBhc3NlcnQodyAhPSAtMSk7CiAgbmV4W21dID0gcHJlW3ddICsgdFt3XVttXTsKICBzdGVwX2RmcyhiLCBtIC0gMSwgbWIsIHcsIHByZSwgbmV4KTsKICBzdGVwX2RmcyhtICsgMSwgbCwgdywgbWwsIHByZSwgbmV4KTsKfQoKdm9pZCBzdGVwKGxsKiBwcmUsIGxsKiBuZXgsIGludCBuKSB7CiAgc3RlcF9kZnMoMCwgbiwgMCwgbiwgcHJlLCBuZXgpOwp9CgppbnQgbWFpbigpIHsKICBpbnQgbiwgbTsKICBzY2FuZigiJWQlZCIsICZuLCAmbSk7CiAgaWYobSA+IG4pIHsKICAgIG0gPSBuOwogIH0KICByZXAoaSwgbikgewogICAgc2NhbmYoIiVsbGQiLCBkICsgaSk7CiAgfQogIHNvcnQoZCwgZCArIG4pOwogIHJlcChpLCBuKSB7CiAgICByZXAoaiwgbikgewogICAgICB0W2ldW2pdID0gMDsKICAgIH0KICB9CiAgcmVwKGssIG4gKiAyIC0gMSkgewogICAgaW50IGEgPSBrIC8gMjsKICAgIGlmKGsgJSAyID09IDApIHsKICAgICAgdFthXVthICsgMV0gPSAwOwogICAgICBmb3IoaW50IGkgPSAxOyBhIC0gaSA+PSAwICYmIGEgKyAxICsgaSA8PSBuOyBpKyspIHsKICAgICAgICB0W2EgLSBpXVthICsgMSArIGldID0gdFthIC0gKGkgLSAxKV1bYSArIDEgKyAoaSAtIDEpXSArIGRbYSArIGldIC0gZFthIC0gaV07CiAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICB0W2FdW2EgKyAyXSA9IGRbYSArIDFdIC0gZFthXTsKICAgICAgZm9yKGludCBpID0gMTsgYSAtIGkgPj0gMCAmJiBhICsgMiArIGkgPD0gbjsgaSsrKSB7CiAgICAgICAgdFthIC0gaV1bYSArIDIgKyBpXSA9IHRbYSAtIChpIC0gMSldW2EgKyAyICsgKGkgLSAxKV0gKyBkW2EgKyAxICsgaV0gLSBkW2EgLSBpXTsKICAgICAgfQogICAgfQogIH0KICBkcFswXVswXSA9IDA7CiAgcmVwKGksIG4pIHsKICAgIGRwWzBdW2kgKyAxXSA9IChsbCkxIDw8IDYwOwogIH0KICByZXAoaSwgbSkgewogICAgc3RlcChkcFtpXSwgZHBbaSArIDFdLCBuKTsKICB9CiAgcHJpbnRmKCIlbGxkXG4iLCBkcFttXVtuXSk7Cn0K