INF = (1 << 61) - 1 N, B, C = map(int, input().split()) A = list(map(int, input().split())) all_sum = sum(A) size = 1 while size < N + 1: size <<= 1 seg = [INF] * (2 * size) def set_val(p, x): p += size seg[p] = x while p > 1: p >>= 1 seg[p] = min(seg[p << 1], seg[p << 1 | 1]) def prod(l, r): res = INF l += size r += size while l < r: if l & 1: res = min(res, seg[l]) l += 1 if r & 1: r -= 1 res = min(res, seg[r]) l >>= 1 r >>= 1 return res set_val(0, 0) for i in range(1, N + 1): l = max(0, i - C) r = i - (1 if B == 2 and i >= 2 else 0) set_val(i, prod(l, r) + A[i - 1]) ans = all_sum - prod(max(0, N + 1 - C), N + 1) print(ans)