#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
int main() {
ifstream infile("deque.in");
ofstream outfile("deque.out");
if (!infile || !outfile) {
cerr << "Error opening file" << endl;
return 1;
}
long long N, K;
infile >> N >> K;
vector<long long> nums(N);
for (long long i = 0; i < N; ++i) {
infile >> nums[i];
}
deque<long long> dq;
long long sum_min = 0;
for (long long i = 0; i < N; ++i) {
// Eliminăm elementele care nu mai fac parte din fereastra curentă
if (!dq.empty() && dq.front() == i - K) {
dq.pop_front();
}
// Eliminăm elementele mai mari decât elementul curent
while (!dq.empty() && nums[dq.back()] >= nums[i]) {
dq.pop_back();
}
dq.push_back(i);
// Adăugăm minimul la sumă după ce am procesat cel puțin K elemente
if (i >= K - 1) {
sum_min += nums[dq.front()];
}
}
outfile << sum_min << endl;
infile.close();
outfile.close();
return 0;
}