////#pragma GCC target("avx, avx2")
//#pragma GCC optimize("O3, Ofast, unroll-loops")
//#define _CRT_SECURE_NO_WARNINGS
//#include <iostream>
//#include <algorithm>
//#include <cmath>
//#include <math.h>
//#include <iomanip>
//#include <random>
//#include <vector>
//#include <map>
//
//
//using namespace std;
//using ll = long long;
//
//#define all(a) a.begin(), a.end()
//#define each(x, a) for(auto &x : a)
//
//
//
//void solve() {
//	ll n, k;
//	cin >> n >> k;
//	vector<ll> a(n);
//	each(x, a) {
//		cin >> x;
//	}
//	/*if (k == 1) {
//		cout << sum;
//		return;
//	}*/
//	/*a.pop_back();
//	sort(all(a));
//	for (int i = 0; i < t - 1; ++i) {
//		sum -= a[i];
//	}
//	cout << sum;
//	return;*/
//	ll t = n - k + 1;
//	ll ans = 0;
//	for (int i = t - 1; i < n; ++i) {
//		ll cur = a[i];
//		for (int j = i + 1; j < n; ++j) {
//			cur += a[j];
//		}
//		vector<ll> d;
//		for (int j = 0; j < i; ++j) {
//			d.push_back(a[j]);
//		}
//		sort(all(d));
//		for (int j = t - 1 ; j < d.size(); ++j) {
//			cur += d[j];
//		}
//		ans = max(ans, cur + n);
//	}
//	sort(all(a));
//	ll sum = 0;
//	for(int i = 0)
//	cout << ans;
//}
//
//
//signed main() {
//#ifdef _DEBUG
//	freopen("input.txt", "r", stdin);
//	freopen("output.txt", "w", stdout);
//#endif
//	ios_base::sync_with_stdio(false);
//	cin.tie(0);
//	cout.tie(0);
//
//	ll t = 1;
//	// cin >> t;
//	while (t--) {
//		solve();
//		cout << '\n';
//	}
//}

//#pragma GCC target("avx, avx2")
#pragma GCC optimize("O3, Ofast, unroll-loops")
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cmath>
#include <math.h>
#include <iomanip>
#include <random>
#include <vector>
#include <map>
#include <set>


using namespace std;
using ll = long long;

#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define each(x, a) for(auto &x : a)


#define fi first
#define se second


void solve() {
	ll n, k;
	cin >> n >> k;
	vector<pair<ll, ll>> a(n);
	vector<ll> b(n);
	for (int i = 0; i < n; ++i) {
		cin >> a[i].fi;
		b[i] = a[i].first;
		a[i].se = i;
	}
	sort(rall(a), [](pair<ll, ll> x, pair<ll, ll> y) {
		if (x.first == y.first) return x.second < y.second;
		return x.first < y.first;
		});
	ll ans1 = 0, mxi = 0;
	for (int i = 0; i < k; ++i) {
		ans1 += a[i].first;
		mxi = max(mxi, a[i].second);
	}
	mxi++;
	ans1 += mxi;
	set<ll> st;
	ll sum = 0;
	for (int i = 0; i < k - 1; ++i) {
		st.insert(a[i].second);
		sum += a[i].first;
	}
	ll ans2 = 0, cnt = 0;
	for (int i = 0; i < n; ++i) {
		if (st.count(i)) continue;
		++cnt;
		ans2 = max(ans2, sum + k - 1 + b[i] + cnt);
	}
	cout << max(ans1, ans2);
}


signed main() {
#ifdef _DEBUG
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	ll t = 1;
	// cin >> t;
	while (t--) {
		solve();
		cout << '\n';
	}
}