#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define int long long
using std::cin;using std::cout;
constexpr int N=5050,inf=1e18;
int n,k,x,a[N],f[N][N],q[N],head,tail,ans;
signed main(){
std::ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
cin>>n>>k>>x;
if(n/k>x){cout<<-1;return 0;}
for(int i=1;i<=n;++i) cin>>a[i];
for(int i=0;i<=n;++i)
for(int j=0;j<=x;++j)
f[i][j]=-inf;
f[0][0]=0;
for(int j=1;j<=x;++j){
q[head=tail=1]=0;
for(int i=1;i<=n;++i){
while(head<=tail&&q[head]<i-k) ++head;
if(head<=tail) f[i][j]=f[q[head]][j-1]+a[i];
while(head<=tail&&f[q[head]][j-1]<=f[i][j-1]) --tail;
q[++tail]=i;
}
}
for(int i=n-k+1;i<=n;++i) ans=std::max(f[i][x],ans);
cout<<ans;
return 0;
}