#include <bits/stdc++.h>
#define piii pair<pair<int,int>,int>
#define pii pair<int,int>
#define node pair<piii,long long>
using namespace std;
int n, k;
long long val;
struct Comp {
bool operator()(const node& a, const node& b) {
return a.second > b.second;
}
};
void solve() {
cin >> n >> k;
vector<long long> arr(n);
vector<pii> check(n);
vector<bool> checked(n,false);
long long res = 0;
int cnt = n - 1;
for (int i = 0; i < n; ++i) {
cin >> arr[i];
res += arr[i];
}
priority_queue<node,vector<node>, Comp> pq;
sort(arr.begin(),arr.end());
for (int i = 0; i < n - 1; ++i) {
pq.push({{{i-1,i+1},i},arr[i+1]-arr[i]});
check[i].first = i - 1, check[i].second = i + 1;
}
while (cnt > k - 1) {
node a = pq.top();
pq.pop();
int index = a.first.second;
if (checked[index] || a.first.first.first != check[index].first ||
a.first.first.second != check[index].second) continue;
checked[index] = true;
cnt--;
res += a.second;
int left = check[index].first, right = check[index].second;
if (left != -1) {
check[left].second = right;
val = (left-check[left].first)*(arr[right]-arr[left]);
pq.push({{{check[left].first,check[left].second},left},val});
}
if (right != n - 1) {
check[right].first = left;
val = (right - check[right].first)*(arr[check[right].second] - arr[right]);
pq.push({{{check[right].first,check[right].second},right},val});
}
}
cout << res;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgIHBpaWkgcGFpcjxwYWlyPGludCxpbnQ+LGludD4KI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIG5vZGUgcGFpcjxwaWlpLGxvbmcgbG9uZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBuLCBrOwpsb25nIGxvbmcgdmFsOwoKc3RydWN0IENvbXAgewogICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IG5vZGUmIGEsIGNvbnN0IG5vZGUmIGIpIHsKICAgICAgICByZXR1cm4gYS5zZWNvbmQgPiBiLnNlY29uZDsgCiAgICB9Cn07CnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBrOwogICAgdmVjdG9yPGxvbmcgbG9uZz4gYXJyKG4pOwogICAgdmVjdG9yPHBpaT4gY2hlY2sobik7CiAgICB2ZWN0b3I8Ym9vbD4gY2hlY2tlZChuLGZhbHNlKTsKICAgIGxvbmcgbG9uZyByZXMgPSAwOwogICAgaW50IGNudCA9IG4gLSAxOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBjaW4gPj4gYXJyW2ldOwogICAgICAgIHJlcyArPSBhcnJbaV07CiAgICB9CiAgICBwcmlvcml0eV9xdWV1ZTxub2RlLHZlY3Rvcjxub2RlPiwgQ29tcD4gcHE7CiAgICBzb3J0KGFyci5iZWdpbigpLGFyci5lbmQoKSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyArK2kpIHsKICAgICAgICBwcS5wdXNoKHt7e2ktMSxpKzF9LGl9LGFycltpKzFdLWFycltpXX0pOwogICAgICAgIGNoZWNrW2ldLmZpcnN0ID0gaSAtIDEsIGNoZWNrW2ldLnNlY29uZCA9IGkgKyAxOwogICAgfQogICAgd2hpbGUgKGNudCA+IGsgLSAxKSB7CiAgICAgICAgbm9kZSBhID0gcHEudG9wKCk7CiAgICAgICAgcHEucG9wKCk7CiAgICAgICAgaW50IGluZGV4ID0gYS5maXJzdC5zZWNvbmQ7CiAgICAgICAgaWYgKGNoZWNrZWRbaW5kZXhdIHx8IGEuZmlyc3QuZmlyc3QuZmlyc3QgIT0gY2hlY2tbaW5kZXhdLmZpcnN0IHx8IAogICAgICAgICAgICBhLmZpcnN0LmZpcnN0LnNlY29uZCAhPSBjaGVja1tpbmRleF0uc2Vjb25kKSBjb250aW51ZTsKICAgICAgICBjaGVja2VkW2luZGV4XSA9IHRydWU7CiAgICAgICAgY250LS07CiAgICAgICAgcmVzICs9IGEuc2Vjb25kOwogICAgICAgIGludCBsZWZ0ID0gY2hlY2tbaW5kZXhdLmZpcnN0LCByaWdodCA9IGNoZWNrW2luZGV4XS5zZWNvbmQ7CiAgICAgICAgaWYgKGxlZnQgIT0gLTEpIHsKICAgICAgICAgICAgY2hlY2tbbGVmdF0uc2Vjb25kID0gcmlnaHQ7CiAgICAgICAgICAgIHZhbCA9IChsZWZ0LWNoZWNrW2xlZnRdLmZpcnN0KSooYXJyW3JpZ2h0XS1hcnJbbGVmdF0pOwogICAgICAgICAgICBwcS5wdXNoKHt7e2NoZWNrW2xlZnRdLmZpcnN0LGNoZWNrW2xlZnRdLnNlY29uZH0sbGVmdH0sdmFsfSk7CiAgICAgICAgfQogICAgICAgIGlmIChyaWdodCAhPSBuIC0gMSkgewogICAgICAgICAgICBjaGVja1tyaWdodF0uZmlyc3QgPSBsZWZ0OwogICAgICAgICAgICB2YWwgPSAocmlnaHQgLSBjaGVja1tyaWdodF0uZmlyc3QpKihhcnJbY2hlY2tbcmlnaHRdLnNlY29uZF0gLSBhcnJbcmlnaHRdKTsKICAgICAgICAgICAgcHEucHVzaCh7e3tjaGVja1tyaWdodF0uZmlyc3QsY2hlY2tbcmlnaHRdLnNlY29uZH0scmlnaHR9LHZhbH0pOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgcmVzOwp9CmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0=