#include <cstdio>
#include <deque>
#include <algorithm>
using namespace std;
struct entry {
int val, originalPos;
};
int N, K;
deque<entry> ordered;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &N, &K);
int x;
long long result = 0;
for (int i = 1; i <= N; i++) {
if (i > K && ordered.front().originalPos == i - K) {
ordered.pop_front();
}
scanf("%d", &x);
while (!ordered.empty() && x < ordered.back().val) {
ordered.pop_back();
}
ordered.push_back({x, i});
if (i >= K) {
result += ordered.front().val;
}
}
printf("%lld\n", result);
return 0;
}