#include <iostream>
#include <set>
#include <map>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <unordered_set>
#include <unordered_map>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <string>
#define int long long

using namespace std;

signed main() {
	int n, k;
	cin >> n >> k;
	vector <int> arr(n);
	vector <pair<int, int>> brr;
	for (int i = 0; i < n; i++) {
		cin >> arr[i];
		brr.push_back({ -arr[i], i });
	}
	sort(brr.begin(), brr.end());
	int ans = 0, maxind = 0;
	set <int> st;
	for (int i = 0; i < k - 1; i++) {
		ans += -brr[i].first + 1;
		maxind = max(maxind, brr[i].second);
		st.insert(brr[i].second);
	}
	int add1 = 0;
	for (int i = maxind + 1; i < n; i++) {
		add1 = max(add1, arr[i] + i - maxind);
	}
	add1 += maxind - (k - 1) + 1;
	int add2 = 0;
	for (int i = 0; i <= maxind; i++) {
		if (st.count(i)) continue;
		add2 = max(add2, arr[i] + 1);
	}
	add2 += maxind - (k - 1);
	ans += max(add1, add2);
	cout << ans;
}
