//Author: Habibie
#include <bits/stdc++.h>
#pragma GCC optimize("O3","unroll-loops")
using namespace std;
#define pb emplace_back
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define lb(v, x) (int)(lower_bound(all(v),x)-v.begin())
#define ub(v, x) (int)(upper_bound(all(v),x)-v.begin())
#define uni(v) v.resize(unique(all(v))-v.begin())
#define sz(x) (int)x.size()
#define srt(v) sort(all(v))
#define inf 0x3f3f3f3f
using ll=long long;
using ull=unsigned long long;
using pii=pair<ll,ll>;
using i128=__int128;
ll fa[100200];
inline ll anc(ll x)
{
while(fa[x]!=x) x=fa[x]=fa[fa[x]];
return x;
}
ll t[100200],f[100200];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll n,k;
cin>>n>>k;
vector<pii> dis;
for(ll i=0;i<n;i++)
{
cin>>t[i];
fa[i]=i,f[i]=1;
if(i) dis.pb(t[i]-t[i-1]-1,i);
}
srt(dis);
for(ll i=0;i<n-k;i++)
{
ll a=anc(dis[i].second-1);
ll b=anc(dis[i].second);
f[b]+=f[a]+dis[i].first;
fa[a]=b;
}
ll r=0;
for(ll i=0;i<n;i++)
if(fa[i]==i)
r+=f[i];
cout<<r<<'\n';
return 0;
}