#include <bits/stdc++.h>
using namespace std;
const int MX = 2e6 + 10;
const int mod = 1e9 + 7;
const long long int inf = 1LL << 62;
int dx4[] = {0, 0, -1, 1};
int dy4[] = {1, -1, 0, 0};
int dx[] = {1, 1, 1, 0, 0, -1, -1, -1};
int dy[] = {1, 0, -1, 1, -1, 1, 0, -1};
long long int ar[MX], br[MX];
long long int dp[5005][5005];
long long int k, n, m;
long long int rec(long long int idx, long long int cur) {
  if (cur == k) return 0;
  long long int &ret = dp[idx][cur];
  if (~ret) return ret;
  ret = 0;
  long long int p1 = -inf;
  if (idx + m - 1 <= n)
    p1 = rec(idx + m, cur + 1) + br[idx + m - 1] - br[idx - 1];
  long long int p2 = -inf;
  if (idx + 1 <= n) p2 = rec(idx + 1, cur);
  ret = max(p1, p2);
  return ret;
}
int main() {
  memset(dp, -1, sizeof(dp));
  long long int q, t, cnt = 0, sum = 0, mx = -inf, mn = inf;
  scanf("%lld %lld %lld", &n, &m, &k);
  vector<long long int> vec;
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &ar[i]);
    br[i] += br[i - 1] + ar[i];
  }
  long long int res = rec(0, 0);
  printf("%lld\n", res);
  return 0;
}
