import sys import math def main(): N, M, L = map(int, sys.stdin.readline().split()) A = list(map(int, sys.stdin.readline().split())) d = math.gcd(N, L) a = N // d b = L // d try: inv_a = pow(a, -1, b) except ValueError: inv_a = 1 # a and b are coprime, so this should not happen max_sum = -float('inf') for r in range(d): K_r = [] for k in range(1, N+1): if (k - r) % d == 0: K_r.append((k, (k - r) // d)) if not K_r: continue sum_for_r = -float('inf') for s in range(b): current_sum = 0 for (k, q) in K_r: x = s - q x_mod_b = x % b m0 = (x_mod_b * inv_a) % b if m0 > M - 1: cnt = 0 else: cnt = (M - 1 - m0) // b + 1 current_sum += A[k-1] * cnt if current_sum > sum_for_r: sum_for_r = current_sum if sum_for_r > max_sum: max_sum = sum_for_r print(max_sum) if __name__ == '__main__': main()