#include <bits/stdc++.h>
using namespace std;
#define FORE(i, a, b) for(int i = (a); i <= (b); ++i)
#define FORD(i, a, b) for(int i = (a); i >= (b); --i)
#define FOR(i, a, b) for(int i = (a); i < (b); ++i)
#define FORIT(i,v) for(__typeof((v).begin()) i = (v).begin(); i != (v).end(); ++i)
#define fi first
#define se second
#define ll long long
#define mp make_pair
#define pb push_back
#define all(a) a.begin(),a.end()
#define sqr(x) (x)*(x)
#define endl '\n'
template <typename G> inline void read(G &x)
{
x = 0; char c;
while(!isdigit(c = getchar()));
do{x = x*10 + c - '0';} while(isdigit(c = getchar()));
}
template <typename G> inline void write(G x)
{
if (x > 9) write(x/10);
putchar(x%10 + '0');
}
template <class T> inline T min(T a,T b,T c){ return min(a,min(b,c)); }
template <class T> inline T min(T a,T b,T c,T d) { return min(a,min(b,c,d)); }
template <class T> inline T max(T a,T b,T c){ return max(a,max(b,c)); }
template <class T> inline T max(T a,T b,T c,T d) { return max(a,max(b,c,d)); }
const int MAXN = 1e5 * 5;
const int base = 1e9 + 7;
const int N = 50000;
int n , k;
int a[N] , f[N];
int ans;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
cin>> n >> k;
FORE(i,1,n) cin>> a[i];
FORE(i,1,n) f[i] = -base;
FORE(i,1,n) {
FORD(j,i-1,0)
if (i - j > k) break;
else {
f[i] = max(f[i] , f[j] + a[i]);
}
ans = max(ans , f[i]);
}
cout<< ans <<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRk9SRShpLCBhLCBiKSBmb3IoaW50IGkgPSAoYSk7IGkgPD0gKGIpOyArK2kpCiNkZWZpbmUgRk9SRChpLCBhLCBiKSBmb3IoaW50IGkgPSAoYSk7IGkgPj0gKGIpOyAtLWkpCiNkZWZpbmUgRk9SKGksIGEsIGIpIGZvcihpbnQgaSA9IChhKTsgaSA8IChiKTsgKytpKQojZGVmaW5lIEZPUklUKGksdikgZm9yKF9fdHlwZW9mKCh2KS5iZWdpbigpKSBpID0gKHYpLmJlZ2luKCk7IGkgIT0gKHYpLmVuZCgpOyArK2kpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSBzcXIoeCkgKHgpKih4KQojZGVmaW5lIGVuZGwgJ1xuJwoKdGVtcGxhdGUgPHR5cGVuYW1lIEc+IGlubGluZSB2b2lkIHJlYWQoRyAmeCkKewogICAgeCA9IDA7IGNoYXIgYzsKICAgIHdoaWxlKCFpc2RpZ2l0KGMgPSBnZXRjaGFyKCkpKTsKICAgIGRve3ggPSB4KjEwICsgYyAtICcwJzt9IHdoaWxlKGlzZGlnaXQoYyA9IGdldGNoYXIoKSkpOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgRz4gaW5saW5lIHZvaWQgd3JpdGUoRyB4KQp7CiAgICBpZiAoeCA+IDkpIHdyaXRlKHgvMTApOwogICAgcHV0Y2hhcih4JTEwICsgJzAnKTsKfQoKdGVtcGxhdGUgPGNsYXNzIFQ+IGlubGluZSBUIG1pbihUIGEsVCBiLFQgYyl7IHJldHVybiBtaW4oYSxtaW4oYixjKSk7IH0KdGVtcGxhdGUgPGNsYXNzIFQ+IGlubGluZSBUIG1pbihUIGEsVCBiLFQgYyxUIGQpIHsgcmV0dXJuIG1pbihhLG1pbihiLGMsZCkpOyB9CnRlbXBsYXRlIDxjbGFzcyBUPiBpbmxpbmUgVCBtYXgoVCBhLFQgYixUIGMpeyByZXR1cm4gbWF4KGEsbWF4KGIsYykpOyB9CnRlbXBsYXRlIDxjbGFzcyBUPiBpbmxpbmUgVCBtYXgoVCBhLFQgYixUIGMsVCBkKSB7IHJldHVybiBtYXgoYSxtYXgoYixjLGQpKTsgfQoKCgpjb25zdCBpbnQgTUFYTiA9IDFlNSAqIDU7CmNvbnN0IGludCBiYXNlID0gMWU5ICsgNzsKY29uc3QgaW50IE4gPSA1MDAwMDsKCgppbnQgbiAsIGs7CmludCBhW05dICwgZltOXTsKaW50IGFuczsKCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKICAgIGNpbj4+IG4gPj4gazsKICAgIEZPUkUoaSwxLG4pIGNpbj4+IGFbaV07CiAgICBGT1JFKGksMSxuKSBmW2ldID0gLWJhc2U7CiAgICBGT1JFKGksMSxuKSB7CiAgICAgICAgRk9SRChqLGktMSwwKQogICAgICAgIGlmIChpIC0gaiA+IGspIGJyZWFrOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBmW2ldID0gbWF4KGZbaV0gLCBmW2pdICsgYVtpXSk7CiAgICAgICAgfQogICAgICAgIGFucyA9IG1heChhbnMgLCBmW2ldKTsKICAgIH0KICAgIGNvdXQ8PCBhbnMgPDxlbmRsOwogICAgcmV0dXJuIDA7Cn0K