//You are given an array of N integers (both positive and negative).
//You can either take an element and add it to your sum or skip it.
//However, if you take an element, you must skip the next K elements.
//Find the maximum sum you can obtain.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k;cin>>n>>k; int arr[n];
for(int i=0;i<n;i++)
cin>>arr[i];
vector<int>dp(n,0);
dp[0]=arr[0];
for(int i=1;i<=k;i++)
dp[i]=max(arr[i], dp[i-1]);
for(int i=k+1;i<n;i++){
dp[i]=max(arr[i]+dp[i-k-1], dp[i-1]);
}
cout<<dp[n-1]<<endl;
return 0;
}
Ly9Zb3UgYXJlIGdpdmVuIGFuIGFycmF5IG9mIE4gaW50ZWdlcnMgKGJvdGggcG9zaXRpdmUgYW5kIG5lZ2F0aXZlKS4gCi8vWW91IGNhbiBlaXRoZXIgdGFrZSBhbiBlbGVtZW50IGFuZCBhZGQgaXQgdG8geW91ciBzdW0gb3Igc2tpcCBpdC4gCi8vSG93ZXZlciwgaWYgeW91IHRha2UgYW4gZWxlbWVudCwgeW91IG11c3Qgc2tpcCB0aGUgbmV4dCBLIGVsZW1lbnRzLgovL0ZpbmQgdGhlIG1heGltdW0gc3VtIHlvdSBjYW4gb2J0YWluLgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJaW50IG4saztjaW4+Pm4+Pms7IGludCBhcnJbbl07Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJY2luPj5hcnJbaV07CgkKCXZlY3RvcjxpbnQ+ZHAobiwwKTsKCWRwWzBdPWFyclswXTsKCWZvcihpbnQgaT0xO2k8PWs7aSsrKQoJZHBbaV09bWF4KGFycltpXSwgZHBbaS0xXSk7Cglmb3IoaW50IGk9aysxO2k8bjtpKyspewoJCWRwW2ldPW1heChhcnJbaV0rZHBbaS1rLTFdLCBkcFtpLTFdKTsKCX0KCWNvdXQ8PGRwW24tMV08PGVuZGw7CglyZXR1cm4gMDsKfQ==