#include using namespace std; #define ll long long #define vl vector #define vvl vector template inline int chmax(T &a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline int chmin(T &a, T b) { if (a > b) { a = b; return 1; } return 0; } auto _ = []() { ios::sync_with_stdio(false); cin.tie(nullptr); return 0; }(); ll INF = 1e18; int main() { ll N, K; cin >> N >> K; vl A(N); for (auto& x : A) cin >> x; vl dp0(K + 1, -INF); vl dp1(K + 1, -INF); dp0[0] = 0; for (int i = 0; i < N; i++) { for (int j = K; j >= 0; j--) { ll p_dp0 = dp0[j], p_dp1 = dp1[j]; if (p_dp0 != -INF || p_dp1 != -INF) dp0[j] = max(p_dp0, p_dp1); else dp0[j] = -INF; if (j > 0 && dp0[j - 1] != -INF) dp1[j] = dp0[j - 1] + A[i]; else dp1[j] = -INF; } } ll ans = max(dp0[K], dp1[K]); cout << ans << "\n"; return 0; }