#include <bits/stdc++.h>
#define int1 long long
#define N 100000
#define ANS(x) (dp[x][0] - sum[x])
using namespace std;
int1 n,k,i,dp[N + 5][0],sum[N + 5],q[N + 5],head,tail;
int1 read(){
int1 x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)){
if (ch == '-'){
f = -1;
}
ch = getchar();
}
while (isdigit(ch)){
x = (x << 1) + (x << 3) + (ch ^ 48);
ch = getchar();
}
return x * f;
}
void uprint(int1 x){
if (x >= 10){
uprint(x / 10);
}
putchar(x % 10 ^ 48);
return ;
}
void print(int1 x){
if (x < 0){
putchar('-');
x = -x;
}
uprint(x);
return ;
}
void ps(int1 x){
print(x);
putchar(' ');
return ;
}
void pe(int1 x){
print(x);
putchar('\n');
return ;
}
int main(){
n = read(),k = read();
for(i = 1; i <= n; i++){
sum[i] = sum[i - 1] + read();
}
head = 1,tail = 0;
for(i = 1; i <= n; i++){
dp[i][0] = max(dp[i - 1][0],dp[i - 1][1]);
while(q[head] < i - k && head <= tail){
head++;
}
dp[i][1] = ANS(q[head]) + sum[i];
while(ANS(i) > ANS(q[tail]) && head <= tail){
tail--;
}
q[++tail] = i;
}
pe(max(dp[n][0],dp[n][1]));
return 0;
}