#include <bits/stdc++.h>
using namespace std;
#ifndef HOME
ifstream in("deque.in");
ofstream out("deque.out");
#define cin in
#define cout out
#endif // HOME
int v[5000001];
int steve[5000001], vf;
int st[5000001];
int main()
{
#ifdef HOME
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
#endif
int n, k;
long long rasp = 0;
cin >> n >> k;
for(int i = 1; i <= n; i++)
cin >> v[i];
vf = 0;
steve[vf] = 0;
for(int i = 1; i <= n; i++)
{
while(vf != 0 && v[i] <= v[steve[vf]])///h[i] > h[steve[vf]]
vf--;
st[i] = steve[vf];
steve[++vf] = i;
}
vf = 0;
steve[vf] = n + 1;
for(int i = n; i >= 1; i--)
{
while(vf != 0 && v[i] < v[steve[vf]])///h[i] > h[steve[vf]]
vf--;
///am st[i] si steve[vf]
int first, last;
first = max(i, st[i] + k);
last = min(i + k - 1, steve[vf] - 1);
if(last >= first)
rasp += 1LL * v[i] * (last - first + 1);
steve[++vf] = i;
}
cout << rasp;
return 0;
}