from collections import deque from heapq import heappush, heappop N, B, C = map(int, input().split()) A = list(map(int, input().split())) if B == 2 and C == 2: exit(print(max(sum(A[::2]), sum(A[1::2])))) offset = 0 dp = deque([0] * C) heap = [0] * C rm = [] for a in A: offset += a x = -heap[0] if B == 2 and dp[0] == x: x = max(-heap[1], -heap[2]) v = x - a dp.appendleft(v) heappush(heap, -v) heappush(rm, -dp.pop()) while rm and heap[0] == rm[0]: heappop(heap) heappop(rm) print(-heap[0] + offset)