import sys import math def main(): N, M, L = map(int, sys.stdin.readline().split()) A = list(map(int, sys.stdin.readline().split())) R = L % N max_C = -float('inf') if R == 0: for i in range(1, L+1): p = (i - 1) % N a = A[p] max_j = N * M count = 0 if i <= max_j: count = (max_j - i) // L + 1 total = a * count if total > max_C: max_C = total else: g = math.gcd(R, N) D = N // g cycles = [] for p0 in range(N): current = p0 cycle = [] for _ in range(D): cycle.append(A[current]) current = (current + R) % N cycles.append(cycle) sum_cycle = [sum(c) for c in cycles] prefix = [] for c in cycles: pre = [0] for num in c: pre.append(pre[-1] + num) prefix.append(pre) for i in range(1, L+1): p0 = (i - 1) % N max_j = N * M if i > max_j: continue T = (max_j - i) // L count = T + 1 full = count // D rem = count % D s = full * sum_cycle[p0] + prefix[p0][rem] if s > max_C: max_C = s print(max_C) if __name__ == "__main__": main()