#include <iostream>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
typedef long long ll;

ll op(ll a, ll b){
    return min(a, b);
}

ll e(){
    return 100000000000000007;
}

int main(){
    ll N,K;
    cin >> N >> K;
    vector<ll> A(N);
    for (ll i = 0; i < N; i++){
        cin >> A[i];
    }

    ll sum = 0;
    for (ll i = 0; i < N; i++) sum += A[i];

    segtree<ll, op, e> dp(N + 1);
    dp.set(0, 0);

    for (ll i = 1; i <= N; i++){
        ll min_val;
        if (i <= K){
            min_val = dp.prod(0, i);
        }
        else{
            min_val = dp.prod(i - K, i);
        }
        ll next_val = min(min_val + A[i - 1], dp.get(i));
        dp.set(i, next_val);
    }
    cout << sum - dp.prod(N - K + 1, N + 1) << endl;
}