#include <fstream>
using namespace std;
#define M 5000005
int a,n,k,i, maxarb[2*M+100] ;
long long rez;
ifstream f1("deque.in");
ofstream f2("deque.out");
void update(int nod, int st, int dr,int poz,int val)
{
if (st==dr )
{ maxarb[nod]=val;
return; }
int m=(st+dr)/2;
if (poz<=m ) update(nod*2,st,m,poz,val );
else update(nod*2+1,m+1,dr,poz,val);
maxarb[nod]=min(maxarb[2*nod], maxarb[2*nod+1] );
}
int query(int nod, int st, int dr,int i, int j )
{
if (i<=st && dr<=j )
return maxarb[nod];
int m= (st+dr)/2, v1=2*M,v2=2*M;
if (i<=m ) v1= query(nod*2,st,m,i,j );
if (j>m ) v2= query(nod*2+1,m+1,dr,i,j );
return min(v1,v2);
}
int main()
{
f1>>n>>k;
for (i=1; i<=n; i++)
{ f1>>a;
update(1,1,n,i,a);
}
for (i=1; i<=n-k+1; i++)
rez+= query(1,1,n,i,i+k-1);
f2<<rez;
f2.close();
return 0;
}