//#include <stdio.h>
//#include <stdlib.h>
//
//void tweets_per_second(int *tps, int tps_length, int k) {
// int size = 0, max = 0, idx, i;
// int val[500], pos[500];
// for (i = 0; i<500; ++i) val[i] = -1, pos[i] = -1;
//
// for (i = 0; i<tps_length; ++i)
// {
// while (size>0 && (val[size - 1] < tps[i] || pos[size - 1] < i - k + 1)) val[size - 1] = pos[size - 1] = -1, size--;
// val[size] = tps[i], pos[size] = i, idx = size, max = val[size++];
// while (pos[idx] >= i - k + 1 || idx >= 0) if (max < val[idx] && pos[idx] >= i - k + 1) max = val[idx]; else idx--;
// printf("%d\n", max);
// }
//}
//
//int main()
//{
// int l[] = { 97, 472, 410, 115, 157, 698, 419, 737, 439, 630, 158, 86, 276, 295, 98, 67, 89, 972, 196, 327, 408, 95, 404, 512, 343, 459, 546, 444, 610, 575, 568, 141, 633, 41, 323, 452, 871, 95, 50, 320, 529, 192, 985, 622, 104, 988, 172, 487, 57, 23, 935, 352, 373, 687, 198, 387, 835, 522, 337, 7, 241, 272, 541, 21, 936, 805, 204, 620, 208, 253, 654, 157, 527, 554, 704, 440, 612, 205, 159, 858, 343, 223, 675, 628, 697, 933, 411, 841, 93, 540, 271, 539, 385, 53, 500, 362, 305, 765, 992, 926, 247, 958, 631, 346, 901, 168, 290, 137, 375, 150, 487, 107, 27, 588, 476, 143, 227, 341, 996, 350, 142, 763, 839, 459, 813, 244, 532, 797, 403, 298, 99, 304, 837, 443, 208, 785, 945, 612, 488, 440, 461, 871, 30, 741, 629, 250, 999, 293, 15, 241, 38, 744, 233, 282, 976, 168, 622, 654, 214, 928, 170, 35, 327, 902, 844, 43, 908, 667, 77, 745, 936, 17, 552, 387, 748, 929, 220, 301, 685, 676, 481, 528, 457, 192, 949, 252, 847, 771, 397, 930, 179, 995, 513, 165, 883, 20, 251, 181, 867, 96, 934, 694, 241, 93, 879, 112, 636, 971, 877, 238, 181, 344, 686, 385, 673, 193, 813, 690, 842, 680, 434, 650, 665, 254, 363, 65, 602, 226, 434, 175, 169, 656, 914, 826, 474, 636, 96, 845, 287, 572, 912, 794, 758, 266, 607, 758, 624, 983, 410, 477, 909, 443, 689, 505, 778, 793, 852, 893, 702, 606, 815, 7, 886, 701, 996, 713, 21, 316, 946, 147, 51, 417, 490, 544, 718, 116, 251, 794, 740, 40, 564, 589, 776, 130, 313, 142, 434, 414, 437, 872, 102, 148, 574, 850, 961, 735, 16, 233, 605, 478, 575, 566, 848, 929, 578, 735, 424, 687, 201, 699, 255, 735, 385, 552, 878, 864, 317, 476, 194, 298, 175, 316, 944, 931, 348, 580, 517, 214, 818, 298, 371, 915, 777, 835, 410, 795, 814, 60, 694, 343, 850, 582, 406, 212, 990, 127, 557, 3, 414, 347, 425, 83, 183, 127, 16, 672, 451, 207, 315, 735, 8, 555, 768, 379, 560, 50, 243, 689, 591, 945, 799, 548, 103, 413, 23, 659, 190, 774, 901, 167, 887, 446, 686, 641, 757, 301, 438, 22, 698, 770, 575, 39, 400, 997, 417, 914, 245, 614, 751, 971, 568, 61, 505, 431, 971, 224, 593, 459, 382, 193, 489, 449, 147, 695, 370, 363, 306, 391, 783, 82, 631, 313, 402, 82, 520, 851, 903, 645, 553, 450, 715, 418, 284, 586, 474, 676, 355, 950, 957, 76, 604, 431, 513, 946, 242, 542, 962, 653, 73, 322, 262, 554, 584, 37, 177, 27, 881, 735, 53, 641, 615, 932, 833, 426, 423, 437, 62, 184, 518, 911 };
// tweets_per_second(l, sizeof(l)/4, 216);
//}
#include <deque>
#include <iostream>
using namespace std;
deque<int> vals, poss;
int n, k, i, nmb, min, j;
long long sum = 0;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
cin >> n >> k;
for (i = 0; i < n; ++i)
{
min = 10000001;
cin >> nmb;
while (vals.size()>0 && (vals.at(vals.size() - 1) >= nmb || poss.at(vals.size() - 1) < i - k + 1))
vals.pop_back(), poss.pop_back();
vals.push_back(nmb), poss.push_back(i);
if (i + 1 >= k)
{
j = vals.size() - 1;
while (j >= 0 && poss[j] >= i - k + 1)
{
if (min>vals.at(j)) min = vals.at(j--);
}
sum += min;
}
}
cout << sum;
}