#include<bits/stdc++.h>
#define f1(i, n) for(int i=1;i<=n;++i)
#define f0(i, n) for(int i=0;i<n;++i)
#define ull unsigned long long
#define ll long long
#define rev(a) reverse(a.begin(),a.end())
#define all(x) x.begin(),x.end()
#define so(A, n) sort(A+1, A+n+1)
using namespace std;
const int maxn = 1e6 + 1;
const int N = 5e5 + 1;
ll A[maxn], dp[maxn];
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
ll n, k;
cin >> n >> k;
f1(i, n) {
cin >> A[i];
}
dp[1] = A[1];
for (ll i = 2; i <= n; ++i) {
ll ma = LLONG_MIN;
for (ll j = max(i - k, 0ll); j < i; ++j) {
ma = max(ma, dp[j]);
}
dp[i] = ma + A[i];
}
ll res = LLONG_MIN;
for (int i = 1; i <= n; ++i) res = max(res, dp[i]);
cout << res;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmMShpLCBuKSBmb3IoaW50IGk9MTtpPD1uOysraSkKI2RlZmluZSBmMChpLCBuKSBmb3IoaW50IGk9MDtpPG47KytpKQojZGVmaW5lIHVsbCB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSByZXYoYSkgcmV2ZXJzZShhLmJlZ2luKCksYS5lbmQoKSkKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBzbyhBLCBuKSBzb3J0KEErMSwgQStuKzEpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBtYXhuID0gMWU2ICsgMTsKY29uc3QgaW50IE4gPSA1ZTUgKyAxOwpsbCBBW21heG5dLCBkcFttYXhuXTsKaW50IG1haW4oKQp7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCWxsIG4sIGs7CgljaW4gPj4gbiA+PiBrOwoJZjEoaSwgbikgewoJCWNpbiA+PiBBW2ldOwoJfQoJZHBbMV0gPSBBWzFdOwoJZm9yIChsbCBpID0gMjsgaSA8PSBuOyArK2kpIHsKCQlsbCBtYSA9IExMT05HX01JTjsKCQlmb3IgKGxsIGogPSBtYXgoaSAtIGssIDBsbCk7IGogPCBpOyArK2opIHsKCQkJbWEgPSBtYXgobWEsIGRwW2pdKTsKCQl9CgkJZHBbaV0gPSBtYSArIEFbaV07Cgl9CglsbCByZXMgPSBMTE9OR19NSU47Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHJlcyA9IG1heChyZXMsIGRwW2ldKTsKCWNvdXQgPDwgcmVzOwp9Cgo=