#include <iostream>
#include <deque>
using namespace std;
const int MAXN = 200005; int n, m; int a[MAXN]; long long sum[MAXN];
int main() {
cin >> n >> m;
sum[0] = 0;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
sum[i] = sum[i - 1] + a[i];
}
deque<int> q;
q.push_back(0);
long long res = sum[1];
for (int i = 1; i <= n; ++i) {
while (!q.empty() && i - q.front() > m) {
q.pop_front();
}
if (!q.empty()) {
res = max(res, sum[i] - sum[q.front()]);
}
while (!q.empty() && sum[i] <= sum[q.back()]) {
q.pop_back();
}
q.push_back(i);
}
cout << res << endl;
return 0;
}