rt
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 4e5 + 10, MF = 1e7;
int v[N], n, k;
int dp[N][2];
int cnt[N][2], ans, res1, res2;
bool check(int mid) {
dp[1][0] = cnt[1][0] = 0;
dp[1][1] = v[1] + mid;
cnt[1][1] = 1;
for (int i = 2; i <= n; i++) {
if (dp[i - 1][0] > dp[i - 1][1]) dp[i][0] = dp[i - 1][0], cnt[i][0] = cnt[i - 1][0];
else dp[i][0] = dp[i - 1][1], cnt[i][0] = cnt[i - 1][1];
dp[i][1] = dp[i - 1][0] + v[i] + mid;
cnt[i][1] = cnt[i - 1][0] + 1;
}
if (dp[n][0] > dp[n][1]) res1 = dp[n][0], res2 = cnt[n][0];
else res1 = dp[n][1], res2 = cnt[n][1];
if (res2 > k) return 0;
ans = res1 - mid * res2;
return 1;
}
signed main () {
scanf("%lld%lld", &n, &k);
for (int i = 1; i <= n; i++) scanf("%lld", &v[i]);
int l = -MF, r = MF;
while (l < r) {
int mid = (l + r) >> 1;
if (check(mid)) l = mid + 1;
else r = mid;
}
cout << ans;
return 0;
}