#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
// Optimize standard I/O operations for competitive programming
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, k;
if (!(cin >> n >> k)) return 0;
vector<ll> a(n);
for(int i = 0; i < n; i++) {
cin >> a[i];
}
// Calculate prefix sums
vector<ll> p(n);
p[0] = a[0];
for(int i = 1; i < n; i++) {
p[i] = a[i] + p[i-1];
}
multiset<ll> u;
u.insert(0); // Essential for subarrays starting at index 0
ll final_max = -1e18; // Use a very small number for negative arrays
for(int i = 0; i < n; i++) {
// If the window size exceeds k, remove the oldest prefix sum
if(i >= k) {
ll val_to_remove = (i - k == 0) ? 0 : p[i - k - 1];
u.erase(u.find(val_to_remove));
}
// The smallest prefix sum in the current window will yield the max subarray
ll r = p[i] - *u.begin();
final_max = max(final_max, r);
// Insert the current prefix sum for future iterations
u.insert(p[i]);
}
cout << final_max << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKaW50IG1haW4oKSB7CiAgICAvLyBPcHRpbWl6ZSBzdGFuZGFyZCBJL08gb3BlcmF0aW9ucyBmb3IgY29tcGV0aXRpdmUgcHJvZ3JhbW1pbmcKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKCiAgICBpbnQgbiwgazsgCiAgICBpZiAoIShjaW4gPj4gbiA+PiBrKSkgcmV0dXJuIDA7CgogICAgdmVjdG9yPGxsPiBhKG4pOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQoKICAgIC8vIENhbGN1bGF0ZSBwcmVmaXggc3VtcwogICAgdmVjdG9yPGxsPiBwKG4pOwogICAgcFswXSA9IGFbMF07CiAgICBmb3IoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcFtpXSA9IGFbaV0gKyBwW2ktMV07CiAgICB9CgogICAgbXVsdGlzZXQ8bGw+IHU7CiAgICB1Lmluc2VydCgwKTsgLy8gRXNzZW50aWFsIGZvciBzdWJhcnJheXMgc3RhcnRpbmcgYXQgaW5kZXggMAoKICAgIGxsIGZpbmFsX21heCA9IC0xZTE4OyAvLyBVc2UgYSB2ZXJ5IHNtYWxsIG51bWJlciBmb3IgbmVnYXRpdmUgYXJyYXlzCgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIC8vIElmIHRoZSB3aW5kb3cgc2l6ZSBleGNlZWRzIGssIHJlbW92ZSB0aGUgb2xkZXN0IHByZWZpeCBzdW0KICAgICAgICBpZihpID49IGspIHsKICAgICAgICAgICAgbGwgdmFsX3RvX3JlbW92ZSA9IChpIC0gayA9PSAwKSA/IDAgOiBwW2kgLSBrIC0gMV07CiAgICAgICAgICAgIHUuZXJhc2UodS5maW5kKHZhbF90b19yZW1vdmUpKTsKICAgICAgICB9CgogICAgICAgIC8vIFRoZSBzbWFsbGVzdCBwcmVmaXggc3VtIGluIHRoZSBjdXJyZW50IHdpbmRvdyB3aWxsIHlpZWxkIHRoZSBtYXggc3ViYXJyYXkKICAgICAgICBsbCByID0gcFtpXSAtICp1LmJlZ2luKCk7CiAgICAgICAgZmluYWxfbWF4ID0gbWF4KGZpbmFsX21heCwgcik7CgogICAgICAgIC8vIEluc2VydCB0aGUgY3VycmVudCBwcmVmaXggc3VtIGZvciBmdXR1cmUgaXRlcmF0aW9ucwogICAgICAgIHUuaW5zZXJ0KHBbaV0pOwogICAgfQoKICAgIGNvdXQgPDwgZmluYWxfbWF4IDw8ICJcbiI7CiAgICAKICAgIHJldHVybiAwOwp9