#include <bits/stdc++.h>
using namespace std;
#define hv signed main
#define int long long
#define all(x) x.begin(),x.end()
#define fileinp(name) freopen(name,"r",stdin)
#define fileout(name) freopen(name,"w",stdout)
#define loop(i, start, end, step) for (long long i = start; i <=end; i += step)
#define rloop(i,start,end,step) for(long long i = end; i>=start;i-=step)
#define fastio ios_base::sync_with_stdio(false);cout.tie(0);cin.tie(0)
#define ins push_back
template <typename T>
using v = vector<T>;
const int maxn = 3e5+5;
int n,a[maxn],k;
hv(){
cin >> n >> k;
for(int i = 1;i <= n;i++)cin >> a[i];
auto check = [&](int pen) -> pair<int,int>{
pair<int,int> dp[n+5][2];
dp[1][0] = {0, 0};
dp[1][1] = {a[1]-pen,1};
for (int i = 2; i <= n; i++) {
dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]);
dp[i][1] =
max(make_pair(dp[i-1][0].first+a[i]-pen,dp[i-1][1].second+1),
make_pair(dp[i-1][1].first+a[i],dp[i-1][1].second));
}
return max(dp[n][0], dp[n][1]);
};
//value - pen
//if
int l = 0, r = 1e15,ans = 0;
// cout << l << " " << r << " ";
while(l <= r){
int mid = (l+r)/2;
pair<int,int> response = check(mid);
if(response.second < k)l = mid+1;
else r = mid-1,ans = mid;
}
cout << check(ans).first + ans*k;
}