#include <fstream>
#include <deque>
using namespace std;
ifstream fin ("deque.in");
ofstream fout("deque.out");
int capats, capatd, i, j, n, k;
long long summin;
struct cap
{
int val, poz;
};
deque<cap> q;
cap x;
int main()
{
fin >> n >> k;
for (i = 1;i <= k;i++)
{
fin >> x.val;
x.poz = i;
while (!q.empty() && q.back().val > x.val)
{
q.pop_back();
}
q.push_back(x);
}
summin = q.front().val;
capats = 1;
capatd = k;
for (i = k + 1;i <= n;i++)
{
fin >> x.val;
x.poz = i;
capats++;
capatd++;
if (q.front().poz < capats)
{
q.pop_front();
}
while (!q.empty() && q.back().val > x.val)
{
q.pop_back();
}
q.push_back(x);
summin += q.front().val;
}
fout << summin;
return 0;
}