#include <bits/stdc++.h>
using namespace std;
#define int long long
int arr[(int)3e5+5];
int n;
pair<int,int> lagr(int lambda){
vector<vector<pair<int,int>>> dp(n,vector<pair<int,int>>(2));
dp[0][0] = {0,0};
dp[0][1] = {arr[0] - lambda,1};
for(int i=1;i<n;i++){
dp[i][0] = max(dp[i-1][0],dp[i-1][1]);
dp[i][1] = max(
make_pair(dp[i-1][1].first + arr[i],dp[i-1][1].second),
make_pair(dp[i-1][0].first + arr[i]- lambda,dp[i-1][0].second+1)
);
}
//cout<<lambda<<' '<<max(dp[n-1][0],dp[n-1][1]).first<<' '<<max(dp[n-1][0],dp[n-1][1]).second<<'\n';
return max(dp[n-1][0],dp[n-1][1]);
}
signed main(){
cin.tie(nullptr)->sync_with_stdio(0);
int k;
cin>>n>>k;
for(int i=0;i<n;i++)cin>>arr[i];
int l=0,r=1e18;
for(int b=(r-l+1);b/=2;){
while(l+b <= r && lagr(l+b).second >= k)l+=b;
}
cout<<lagr(l).first + l*k;
return 0;
}