#include using namespace std; typedef long long ll; const int kMaxN = 10005; const ll kInf = (1LL<<59); int n, k; ll c[kMaxN]; ll memo[kMaxN][2005]; ll f(int pos, int lastk) { if (pos == n) { if (lastk <= 1000) return 0; else return kInf; } int realk = lastk-1000; if (memo[pos][lastk] != -1) return memo[pos][lastk]; ll ans = kInf; if (realk + 1 <= k) { ans = min(ans, f(pos+1, lastk+1)); } ans = min(ans, c[pos] + f(pos+1, -k+1000)); return memo[pos][lastk] = ans; } int main() { cin>>n>>k; memset(memo, -1, sizeof(memo)); for(int i=0; i>c[i]; cout<