#include <iostream>
#include <fstream>
#include <vector>
bool empty(int& start, int& end) {
bool b = start == end;
return b;
}
long long a[5000010] = { 0 };
int dq[5000010] = { 0 };
int main()
{
std::ifstream f("deque.in");
std::ofstream g("deque.out");
int n, k;
f >> n >> k;
int start = 0, back = -1;
for (int i = 0; i < n; i++) {
f >> a[i];
}
long long s = 0;
for (int i = 0; i < n; i++) {
if (dq[start] <= i - k) {
start++;
}
while (start <= back && a[dq[back]] >= a[i]) {
back--;
}
back++;
dq[back] = i;
if (i + 1>= k) {
s += a[dq[start]];
}
}
std::cout << s;
}