#include <bits/stdc++.h>
using namespace std;
#define int long long

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, k;
    cin >> n >> k;
    vector<int> a(n);
    for (auto &v : a)
        cin >> v;
    if (k == 1) {
        long long ans = 0;
        for (int i = 0; i < n; i++)
            ans = max(ans, a[i] + i + 1ll);
        cout << ans << "\n";
        return 0;
    }
    vector<int> ind(n);
    iota(ind.begin(), ind.end(), 0);
    sort(ind.begin(), ind.end(), [&](int i, int j) {
        if (a[i] == a[j])
            return i > j;
        return a[i] > a[j];
    });
    vector<bool> used(n);
    vector<bool> mx(n);
    for (int i = 0; i < k; i++) {
        mx[ind[i]] = true;
    }
    long long ans = 0;
    if (!mx[n - 1]) {
        int d = 1;
        for (int i = 0; i < n; i++) {
            if (mx[i] && i != ind[k - 1]) {
                ans += a[i] + d;
                d = 0;
                used[i] = true;
                for (int j = i - 1; j >= 0 && (!mx[j] || j == ind[k - 1]); j--)
                    if (j != ind[k - 1])
                        used[j] = true;
            }
            if (i != ind[k - 1])
                d++;
        }
        long long mxx = 0;
        d = 1;
        for (int i = 0; i < n; i++) {
            if (!used[i]) {
                mxx = max(mxx, a[i] + d);
                d++;
            }
        }
        ans += mxx;
    } else {
        int d = 1;
        for (int i = 0; i < n; i++, d++) {
            if (mx[i]) {
                ans += a[i] + d;
                d = 0;
            }
        }
    }
    cout << ans << "\n";
    return 0;
}