#include <iostream>
#include <deque>
using namespace std;
#define int long long
int dp[100010]={};
int pre[100010]={};
signed main(){
ios::sync_with_stdio(0),cin.tie(0);
int n,k;
cin>>n>>k;
deque<pair<int,int>> dq;
for(int i=1;i<=n;i++)cin>>pre[i],pre[i]+=pre[i-1];
dq.push_back({0,0});
for(int i=1;i<=n;i++){
while(dq.size()&&i-dq.front().first>k)dq.pop_front();
dp[i] = pre[i] - dq.front().second;
dp[i] = max(dp[i],dp[i-1]);
int pb = pre[i]-dp[i-1];
while(dq.size()&&dq.back().second>=pb)dq.pop_back();
dq.push_back({i,pb});
}
cout<<dp[n];
}