#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<set>#include<vector>#include<queue>usingnamespace std;typedeflonglong ll;typedef pair<ll, ll> PLL;constint N =1e5+10;
ll n, k;
ll a[N];
ll e[N], l[N], r[N];voidremove(ll x){
l[r[x]]= l[x];
r[l[x]]= r[x];}intmain(){
cin >> n >> k;for(int i =0; i < n; i++)scanf("%lld",&a[i]);for(int i = n -1; i >0; i--) e[i]= a[i]- a[i -1];
set<PLL> st;
e[0]=1e12, e[n]=1e12;for(int i =0; i <= n; i++){
l[i]= i -1;
r[i]= i +1;
st.insert({
e[i], i});}
ll res =0;while(k--){
auto it = st.begin();
ll d = it->first;
ll index = it->second;
ll left = l[index], right = r[index];
st.erase(it);
st.erase({
e[left],left}),st.erase({
e[right],right});
res += d;remove(left),remove(right);
e[index]= e[left]+ e[right]- d;
st.insert({
e[index], index});}
cout << res << endl;return0;}