#include <iostream>
#include <fstream>
#include <vector>
int main()
{
std::ifstream f("deque.in");
std::ofstream g("deque.out");
int n, k;
f >> n >> k;
long long* a = new long long[n] {0};
std::vector<int> dq;
int front = 0, back = -1;
for (int i = 0; i < n; i++) {
f >> a[i];
}
long long s = 0;
for (int i = 0; i < n; i++) {
while (!dq.empty() && a[dq.back()] >= a[i]) {
dq.pop_back();
}
dq.push_back(i);
if (dq.front() == i - k) {
dq.erase(dq.begin());
}
if (i + 1 >= k) {
s += a[dq.front()];
}
}
g << s;
delete[] a;
}