#include <fstream>
#include <deque>
using namespace std;
ifstream fi("deque.in");
ofstream fo("deque.out");
struct pack{
int val;
int poz;
}stock;
deque < pack > decoada;
int n,i,j,k,s,x;
long long mini;
int main()
{
fi>>n>>k;
for(i=1;i<=k;i++){
fi>>x;
while(!decoada.empty() and
decoada.back().val>x){
decoada.pop_back();
}
stock.val=x;
stock.poz=i;
decoada.push_back(stock);
}
mini+=decoada.front().val;
for(i=k+1;i<=n;i++){
fi>>x;
if(decoada.front().poz<i-k+1){
decoada.pop_front();
}
while(!decoada.empty() and
decoada.back().val>x){
decoada.pop_back();
}
stock.val=x;
stock.poz=i;
decoada.push_back(stock);
mini+=decoada.front().val;
}
fo<<mini;
return 0;
}