'''input 6 2 20 10 5 1 3 4 ''' def rints(): return list(map(int, input().split())) def ri(): return int(input()) def solve(n, k, c): used = [-1] * n dp = [10**15 + 2] * n for i in range(n): used[i] = c[i] if i > k: used[i] += dp[i-k-1] # dp[i] = used[i] for j in range(i-k, i+k+1): if j < 0 or j > n-1 or i == j: continue dp[i] = min(dp[i], used[i]) if j < i: dp[i] = min(dp[i], used[j]) elif j > i: dp[i] = min(dp[i], c[j] + (dp[j-k-1] if (j-k-1) >= 0 else 0)) return dp[n-1] def main(): n, k = rints() costs = rints() print(solve(n, k, costs)) main()