#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 2.5e5+5;
ll n,st,m,a[N],lsh[N],tot;
ll f[N],g[N],f1[N],g1[N];
ll rt[N],sum[N<<3],siz[N<<3],ls[N<<3],rs[N<<3],cnt;
void ins(int x,ll &y,int l,int r,int p,ll v){
y=++cnt;
siz[y]=siz[x]+1;
sum[y]=sum[x]+v;
ls[y]=ls[x];
rs[y]=rs[x];
if (l==r){
return;
}
int mid=l+r>>1;
if (p<=mid){
ins(ls[x],ls[y],l,mid,p,v);
}
else{
ins(rs[x],rs[y],mid+1,r,p,v);
}
}
ll qy(int x,int y,int l,int r,ll k){
if (k<=0){
return 0;
}
if (l==r){
return min(k,siz[y]-siz[x])*lsh[l];
}
int mid=l+r>>1;
if (siz[rs[y]]-siz[rs[x]]>=k){
return qy(rs[x],rs[y],mid+1,r,k);
}
else{
return sum[rs[y]]-sum[rs[x]]+qy(ls[x],ls[y],l,mid,k-(siz[rs[y]]-siz[rs[x]]));
}
}
void sol1(int l,int r,int L,int R){
if (l>r){
return;
}
int mid=l+r>>1;
ll pos=0;
for (int i=L; i<=R; i++){
ll tmp=qy(rt[st-1],rt[i],1,tot,st-i+mid);
if (tmp>f[mid] || pos==0){
f[mid]=tmp,pos=i;
}
}
sol1(l,mid-1,L,pos);
sol1(mid+1,r,pos,R);
}
void sol2(int l,int r,int L,int R){
if (l>r){
return;
}
int mid=l+r>>1;
ll pos=0;
for (int i=R; i>=L; i--){
ll tmp=qy(rt[i-1],rt[st-1],1,tot,i-st+mid);
if (tmp>g[mid] || pos==0){
g[mid]=tmp,pos=i;
}
}
sol2(l,mid-1,L,pos);
sol2(mid+1,r,pos,R);
}
void sol3(int l,int r,int L,int R){
if (l>r){
return;
}
int mid=l+r>>1;
ll pos=0;
for (int i=L; i<=R; i++){
ll tmp=qy(rt[st-1],rt[i],1,tot,(st-i)*2+mid);
if (tmp>f1[mid] || pos==0){
f1[mid]=tmp,pos=i;
}
}
sol3(l,mid-1,L,pos);
sol3(mid+1,r,pos,R);
}
void sol4(int l,int r,int L,int R){
if (l>r){
return;
}
int mid=l+r>>1;
ll pos=0;
for (int i=R; i>=L; i--){
ll tmp=qy(rt[i-1],rt[st-1],1,tot,(i-st)*2+mid);
if (tmp>g1[mid] || pos==0){
g1[mid]=tmp,pos=i;
}
}
sol4(l,mid-1,L,pos);
sol4(mid+1,r,pos,R);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>st>>m;
st++;
for (int i=1; i<=n; i++){
cin>>a[i];
lsh[i]=a[i];
}
sort(lsh+1,lsh+1+n);
tot=unique(lsh+1,lsh+1+n)-lsh-1;
for (int i=1; i<=n; i++){
a[i]=lower_bound(lsh+1,lsh+tot+1,a[i])-lsh;
ins(rt[i-1],rt[i],1,tot,a[i],lsh[a[i]]);
}
sol1(1,m,st,min(n,st+m));
sol2(1,m,max(1ll,st-m),st);
sol3(1,m,st,min(n,st+m/2));
sol4(1,m,max(1ll,st-m/2),st);
ll ans=0;
for (int i=0; i<=m; i++){
ans=max(ans,f1[i]+g[m-i]);
ans=max(ans,g1[i]+f[m-i]);
}
cout<<ans<<"\n";
return 0;
}