#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef pair PII; #define MP make_pair #define PB push_back #define FF first #define SS second #define FORN(i, n) for (int i = 0; i < (int)(n); i++) #define FOR1(i, n) for (int i = 1; i <= (int)(n); i++) #define FORD(i, n) for (int i = (int)(n) - 1; i >= 0; i--) #define DEBUG(X) { cout << #X << " = " << (X) << endl; } #define PR0(A,n) { cout << #A << " = "; FORN(_,n) cout << A[_] << ' '; cout << endl; } #define MOD 1000000007 #define INF 2000000000 int GLL(LL& x) { return scanf("%lld", &x); } int GI(int& x) { return scanf("%d", &x); } using namespace std; const int MAXN = 10010; LL c[MAXN]; int n, k; int main() { GI(n); GI(k); FOR1(i, n) GLL(c[i]); LL res = 1LL * INF * INF; FOR1(i, k+1) { LL curr = c[i]; int lastOn = i + k; while (lastOn + 2 * k + 1 <= n) { curr += c[lastOn + k + 1]; lastOn += 2 * k + 1; } if (lastOn >= n) { res = min(res, curr); } else { if (lastOn + k + 1 <= n) { res = min(res, curr + c[lastOn + k + 1]); } } } cout << res << "\n"; return 0; }