#include <stdio.h>
#define NMAX 10000023
FILE *fin, *fout;
int arb[NMAX], n, k, *v;
long long int sum;
int min(int a, int b)
{
return (a<b)?a:b;
}
void pun(int st, int dr, int val, int poz)
{
if(st == dr) {arb[poz] = v[val];return;}
int mij = (st+dr)/2;
if(val > mij)
{
pun(mij+1, dr, val, 2*poz+1);
arb[poz] = min(arb[2*poz], arb[2*poz + 1]);
}
if(val <= mij)
{
pun(st, mij, val, 2*poz);
arb[poz] = min(arb[2*poz], arb[2*poz + 1]);
}
}
int interogare(int st1, int dr1, int st, int dr, int poz)
{
if(st1 == st && dr1 == dr) return arb[poz];
int mij = (st1+dr1)/2;
if(st > mij) return interogare(mij+1, dr1, st, dr, 2*poz+1);
if(dr <= mij) return interogare(st1, mij, st, dr, 2*poz);
return min(interogare(st1, mij, st, mij, 2*poz), interogare(mij+1, dr1, mij+1, dr, 2*poz+1));
}
int main()
{
fin = fopen("deque.in", "r");
fout = fopen("deque.out", "w");
fscanf(fin, "%d%d", &n, &k);
v = new int[n+23];
for(int i =0; i< n; i++)
{
fscanf(fin, "%d", &v[i+1]);
pun(1, n, i+1, 1);
}
for(int i = k; i<= n; i++)
{
sum+=(long long int)interogare(1, n, i-k+1, i, 1);
}
fprintf(fout, "%lld\n", sum);
fclose(fin);
fclose(fout);
return 0;
}