#include <bits/stdc++.h> // NeOWami
using namespace std;
#define ft first
#define sc second
#define int long long
using pii = pair<int, int>;
template<class T> using heapmin = priority_queue<T, vector<T>, greater<T>>;
const int N = 3e5 + 5;
int n, k;
int a[N];
int val[N], L[N], R[N], curID;
bool del[N];
signed main() {
cin.tie(NULL)->sync_with_stdio(false);
if(ifstream("BACKUP.inp")) {
freopen("BACKUP.inp", "r", stdin);
freopen("BACKUP.out", "w", stdout);
}
cin >> n >> k;
for (int i = 1; i <= n; i++) cin >> a[i];
sort(a + 1, a + n + 1);
heapmin<pii> pq;
for (int i = 1; i < n; i++) {
++curID;
val[i] = a[i + 1] - a[i];
L[i] = i - 1;
R[i] = (i + 1 == n) ? 0 : i + 1;
pq.push({val[i], i});
}
curID = n;
int cnt = 0, ans = 0;
while(cnt < k) {
int i = pq.top().sc;
pq.pop();
if (del[i]) continue;
ans += val[i];
del[i] = 1;
cnt++;
int l = L[i], r = R[i];
del[l] = del[r] = 1;
int leftL = l ? L[l] : 0;
int rightR = r ? R[r] : 0;
if (l && r) {
int id = ++curID;
val[id] = val[l] + val[r] - val[i];
L[id] = leftL, R[id] = rightR;
if (leftL) R[leftL] = id;
if (rightR) L[rightR] = id;
del[id] = 0;
pq.push({val[id], id});
}
else {
if (leftL) R[leftL] = rightR;
if (rightR) L[rightR] = leftL;
}
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IC8vIE5lT1dhbWkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZnQgZmlyc3QKI2RlZmluZSBzYyBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCnVzaW5nIHBpaSA9IHBhaXI8aW50LCBpbnQ+Owp0ZW1wbGF0ZTxjbGFzcyBUPiB1c2luZyBoZWFwbWluID0gcHJpb3JpdHlfcXVldWU8VCwgdmVjdG9yPFQ+LCBncmVhdGVyPFQ+PjsKCmNvbnN0IGludCBOID0gM2U1ICsgNTsKCmludCBuLCBrOwppbnQgYVtOXTsKaW50IHZhbFtOXSwgTFtOXSwgUltOXSwgY3VySUQ7CmJvb2wgZGVsW05dOwpzaWduZWQgbWFpbigpIHsKICAgIGNpbi50aWUoTlVMTCktPnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBpZihpZnN0cmVhbSgiQkFDS1VQLmlucCIpKSB7CiAgICAgICAgZnJlb3BlbigiQkFDS1VQLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIkJBQ0tVUC5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gbiA+PiBrOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKICAgIHNvcnQoYSArIDEsIGEgKyBuICsgMSk7CiAgICBoZWFwbWluPHBpaT4gcHE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgICsrY3VySUQ7CiAgICAgICAgdmFsW2ldID0gYVtpICsgMV0gLSBhW2ldOwogICAgICAgIExbaV0gPSBpIC0gMTsKICAgICAgICBSW2ldID0gKGkgKyAxID09IG4pID8gMCA6IGkgKyAxOwogICAgICAgIHBxLnB1c2goe3ZhbFtpXSwgaX0pOwogICAgfQogICAgCiAgICBjdXJJRCA9IG47CiAgICBpbnQgY250ID0gMCwgYW5zID0gMDsKICAgIHdoaWxlKGNudCA8IGspIHsKICAgICAgICBpbnQgaSA9IHBxLnRvcCgpLnNjOwogICAgICAgIHBxLnBvcCgpOwogICAgICAgIGlmIChkZWxbaV0pIGNvbnRpbnVlOyAKICAgICAgICBhbnMgKz0gdmFsW2ldOwogICAgICAgIGRlbFtpXSA9IDE7CiAgICAgICAgY250Kys7CgogICAgICAgIGludCBsID0gTFtpXSwgciA9IFJbaV07CiAgICAgICAgZGVsW2xdID0gZGVsW3JdID0gMTsKICAgICAgICAKICAgICAgICBpbnQgbGVmdEwgPSBsID8gTFtsXSA6IDA7IAogICAgICAgIGludCByaWdodFIgPSByID8gUltyXSA6IDA7IAogICAgICAgIGlmIChsICYmIHIpIHsKICAgICAgICAgICAgaW50IGlkID0gKytjdXJJRDsKICAgICAgICAgICAgdmFsW2lkXSA9IHZhbFtsXSArIHZhbFtyXSAtIHZhbFtpXTsKICAgICAgICAgICAgTFtpZF0gPSBsZWZ0TCwgUltpZF0gPSByaWdodFI7CiAgICAgICAgICAgIGlmIChsZWZ0TCkgUltsZWZ0TF0gPSBpZDsKICAgICAgICAgICAgaWYgKHJpZ2h0UikgTFtyaWdodFJdID0gaWQ7CiAgICAgICAgICAgIGRlbFtpZF0gPSAwOwogICAgICAgICAgICBwcS5wdXNoKHt2YWxbaWRdLCBpZH0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYgKGxlZnRMKSBSW2xlZnRMXSA9IHJpZ2h0UjsKICAgICAgICAgICAgaWYgKHJpZ2h0UikgTFtyaWdodFJdID0gbGVmdEw7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBhbnM7CiAgICByZXR1cm4gMDsKfQ==