#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define mem(a, v) memset(a, v, sizeof (a)) #define x first #define y second #define all(a) (a).begin(), (a).end() #define mp make_pair #define mt make_tuple #define sz(x) int((x).size()) #define rep(i, n) for (int i = 0; i < int(n); i ++) #define repi(i, a, n) for (int i = (a); i < int(n); i ++) #define repe(x, v) for (auto x: (v)) #define vt(x) vector < x > #define px(x) pair < x, x > #define pxy(x, y) pair < x, y > typedef long long ll; int main () { std::ios_base::sync_with_stdio(false); int n, k; cin >> n >> k; vt(ll) c(n), dp(n+1); repe(&e, c) { cin >> e; } for (int i = n-1; i >= 0; i --) { dp[i] = LLONG_MAX; repi(j, i, min(i+k+1, n)) { dp[i] = min(dp[i], dp[min(j+k+1, n)] + c[j]); } } cout << dp[0] << endl; return 0; }