#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]; }