#include <bits/stdc++.h>
using namespace std;
const int N = 200009;
int a[N],n,l,r;
int f[N],q[N],ans = INT_MIN;
int head = 1,tail;
void pop(int id) {
while(head <= tail) {
if(q[head] + r < id) head++;
else break;
}
}
void push(int id) {
while(head <= tail) {
if(f[id] >= f[q[tail]]) tail--;
else break;
}
q[++tail] = id;
}
int main() {
scanf("%d %d %d",&n,&l,&r);
for(int i = 0;i <= n;i++) {
scanf("%d",&a[i]);
f[i] = -19260817;
}
f[0] = 0;
for(int i = l;i <= n;i++) {
push(i - l);
pop(i);
f[i] = f[q[head]] + a[i];
}
for(int i = n - r + 1;i <= n;i++) ans = max(ans,f[i]);
printf("%d\n",ans);
return 0;
}