#include <bits/stdc++.h>
#define ll long long
#define sti string
#define bit(n,i) ((n>>i) &1)
#define itachi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define maxn 300005
#define fi first
#define se second
#define int long long
using namespace std;
int dp[maxn],a[maxn];
int st[4*maxn],lazy[4*maxn];
int n,Lefttt,Rightttt;
const int INF = 4e18;
void apply(int id,int val){
st[id] += val;
lazy[id] += val;
}
void down(int id){
if(lazy[id] == 0) return;
apply(id*2,lazy[id]);
apply(id*2+1,lazy[id]);
lazy[id] = 0;
}
void update(int id,int l,int r,int u,int v,int val){
if(l>r || u>v || l>v || r<u) return;
if(u<=l && r<=v){
apply(id,val);
return;
}
int mid = (l+r)/2;
down(id);
update(id*2,l,mid,u,v,val);
update(id*2+1,mid+1,r,u,v,val);
st[id] = min(st[id*2],st[id*2+1]);
}
void build(int id,int l,int r){
lazy[id] = 0;
if(l==r){
st[id] = (l==0 ? 0 : INF);
return;
}
int mid = (l+r)/2;
build(id*2,l,mid);
build(id*2+1,mid+1,r);
st[id] = min(st[id*2],st[id*2+1]);
}
int get(int id,int l,int r,int u,int v){
if(l>r || u>v || l>v || r<u) return INF;
if(u<=l && r<=v) return st[id];
down(id);
int mid = (l+r)/2;
return min(get(id*2,l,mid,u,v),get(id*2+1,mid+1,r,u,v));
}
void setval(int id,int l,int r,int pos,int val){
if(l==r){
st[id] = val;
lazy[id] = 0;
return;
}
int mid = (l+r)/2;
down(id);
if(pos<=mid) setval(id*2,l,mid,pos,val);
else setval(id*2+1,mid+1,r,pos,val);
st[id] = min(st[id*2],st[id*2+1]);
}
signed main(){
itachi
freopen("FORMAT.inp","r",stdin);
freopen("FORMAT.out","w",stdout);
cin>>n>>Lefttt>>Rightttt;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=0;i<=n;i++) dp[i] = INF;
build(1,0,n);
vector<pair<int,int>> stMax,stMin;
for(int i=1;i<=n;i++){
int last = i;
while(!stMax.empty() && stMax.back().fi<=a[i]){
int val = stMax.back().fi;
int L = stMax.back().se;
stMax.pop_back();
if(L-1<=last-2) update(1,0,n,L-1,last-2,a[i]-val);
last = L;
}
update(1,0,n,i-1,i-1,a[i]);
stMax.push_back({a[i],last});
last = i;
while(!stMin.empty() && stMin.back().fi>a[i]){
int val = stMin.back().fi;
int L = stMin.back().se;
stMin.pop_back();
if(L-1<=last-2) update(1,0,n,L-1,last-2,val-a[i]);
last = L;
}
update(1,0,n,i-1,i-1,-a[i]);
stMin.push_back({a[i],last});
dp[i] = INF;
if(i - Lefttt >= 0){
int Left = max(0LL, i - Rightttt);
int Right = i - Lefttt;
dp[i] = get(1,0,n,Left,Right);
if(dp[i] >= INF/2) dp[i] = INF;
}
setval(1,0,n,i,dp[i]);
}
cout<<(dp[n]>=INF ? -1 : dp[n]);
return 0;
}
CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHN0aSBzdHJpbmcKI2RlZmluZSBiaXQobixpKSAoKG4+PmkpICYxKQojZGVmaW5lIGl0YWNoaSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiNkZWZpbmUgbWF4biAzMDAwMDUKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGludCBsb25nIGxvbmcKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZHBbbWF4bl0sYVttYXhuXTsKaW50IHN0WzQqbWF4bl0sbGF6eVs0Km1heG5dOwppbnQgbixMZWZ0dHQsUmlnaHR0dHQ7CmNvbnN0IGludCBJTkYgPSA0ZTE4OwoKdm9pZCBhcHBseShpbnQgaWQsaW50IHZhbCl7CiAgICBzdFtpZF0gKz0gdmFsOwogICAgbGF6eVtpZF0gKz0gdmFsOwp9Cgp2b2lkIGRvd24oaW50IGlkKXsKICAgIGlmKGxhenlbaWRdID09IDApIHJldHVybjsKICAgIGFwcGx5KGlkKjIsbGF6eVtpZF0pOwogICAgYXBwbHkoaWQqMisxLGxhenlbaWRdKTsKICAgIGxhenlbaWRdID0gMDsKfQoKdm9pZCB1cGRhdGUoaW50IGlkLGludCBsLGludCByLGludCB1LGludCB2LGludCB2YWwpewogICAgaWYobD5yIHx8IHU+diB8fCBsPnYgfHwgcjx1KSByZXR1cm47CiAgICBpZih1PD1sICYmIHI8PXYpewogICAgICAgIGFwcGx5KGlkLHZhbCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZCA9IChsK3IpLzI7CiAgICBkb3duKGlkKTsKICAgIHVwZGF0ZShpZCoyLGwsbWlkLHUsdix2YWwpOwogICAgdXBkYXRlKGlkKjIrMSxtaWQrMSxyLHUsdix2YWwpOwogICAgc3RbaWRdID0gbWluKHN0W2lkKjJdLHN0W2lkKjIrMV0pOwp9Cgp2b2lkIGJ1aWxkKGludCBpZCxpbnQgbCxpbnQgcil7CiAgICBsYXp5W2lkXSA9IDA7CiAgICBpZihsPT1yKXsKICAgICAgICBzdFtpZF0gPSAobD09MCA/IDAgOiBJTkYpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQgPSAobCtyKS8yOwogICAgYnVpbGQoaWQqMixsLG1pZCk7CiAgICBidWlsZChpZCoyKzEsbWlkKzEscik7CiAgICBzdFtpZF0gPSBtaW4oc3RbaWQqMl0sc3RbaWQqMisxXSk7Cn0KCmludCBnZXQoaW50IGlkLGludCBsLGludCByLGludCB1LGludCB2KXsKICAgIGlmKGw+ciB8fCB1PnYgfHwgbD52IHx8IHI8dSkgcmV0dXJuIElORjsKICAgIGlmKHU8PWwgJiYgcjw9dikgcmV0dXJuIHN0W2lkXTsKICAgIGRvd24oaWQpOwogICAgaW50IG1pZCA9IChsK3IpLzI7CiAgICByZXR1cm4gbWluKGdldChpZCoyLGwsbWlkLHUsdiksZ2V0KGlkKjIrMSxtaWQrMSxyLHUsdikpOwp9Cgp2b2lkIHNldHZhbChpbnQgaWQsaW50IGwsaW50IHIsaW50IHBvcyxpbnQgdmFsKXsKICAgIGlmKGw9PXIpewogICAgICAgIHN0W2lkXSA9IHZhbDsKICAgICAgICBsYXp5W2lkXSA9IDA7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZCA9IChsK3IpLzI7CiAgICBkb3duKGlkKTsKICAgIGlmKHBvczw9bWlkKSBzZXR2YWwoaWQqMixsLG1pZCxwb3MsdmFsKTsKICAgIGVsc2Ugc2V0dmFsKGlkKjIrMSxtaWQrMSxyLHBvcyx2YWwpOwogICAgc3RbaWRdID0gbWluKHN0W2lkKjJdLHN0W2lkKjIrMV0pOwp9CgpzaWduZWQgbWFpbigpewogICAgaXRhY2hpCiAgICBmcmVvcGVuKCJGT1JNQVQuaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3BlbigiRk9STUFULm91dCIsInciLHN0ZG91dCk7CiAgICBjaW4+Pm4+PkxlZnR0dD4+UmlnaHR0dHQ7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykgY2luPj5hW2ldOwogICAgZm9yKGludCBpPTA7aTw9bjtpKyspIGRwW2ldID0gSU5GOwogICAgYnVpbGQoMSwwLG4pOwogICAgdmVjdG9yPHBhaXI8aW50LGludD4+IHN0TWF4LHN0TWluOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGludCBsYXN0ID0gaTsKICAgICAgICB3aGlsZSghc3RNYXguZW1wdHkoKSAmJiBzdE1heC5iYWNrKCkuZmk8PWFbaV0pewogICAgICAgICAgICBpbnQgdmFsID0gc3RNYXguYmFjaygpLmZpOwogICAgICAgICAgICBpbnQgTCA9IHN0TWF4LmJhY2soKS5zZTsKICAgICAgICAgICAgc3RNYXgucG9wX2JhY2soKTsKICAgICAgICAgICAgaWYoTC0xPD1sYXN0LTIpIHVwZGF0ZSgxLDAsbixMLTEsbGFzdC0yLGFbaV0tdmFsKTsKICAgICAgICAgICAgbGFzdCA9IEw7CiAgICAgICAgfQogICAgICAgIHVwZGF0ZSgxLDAsbixpLTEsaS0xLGFbaV0pOwogICAgICAgIHN0TWF4LnB1c2hfYmFjayh7YVtpXSxsYXN0fSk7CiAgICAgICAgbGFzdCA9IGk7CiAgICAgICAgd2hpbGUoIXN0TWluLmVtcHR5KCkgJiYgc3RNaW4uYmFjaygpLmZpPmFbaV0pewogICAgICAgICAgICBpbnQgdmFsID0gc3RNaW4uYmFjaygpLmZpOwogICAgICAgICAgICBpbnQgTCA9IHN0TWluLmJhY2soKS5zZTsKICAgICAgICAgICAgc3RNaW4ucG9wX2JhY2soKTsKICAgICAgICAgICAgaWYoTC0xPD1sYXN0LTIpIHVwZGF0ZSgxLDAsbixMLTEsbGFzdC0yLHZhbC1hW2ldKTsKICAgICAgICAgICAgbGFzdCA9IEw7CiAgICAgICAgfQogICAgICAgIHVwZGF0ZSgxLDAsbixpLTEsaS0xLC1hW2ldKTsKICAgICAgICBzdE1pbi5wdXNoX2JhY2soe2FbaV0sbGFzdH0pOwogICAgICAgIGRwW2ldID0gSU5GOwogICAgICAgIGlmKGkgLSBMZWZ0dHQgPj0gMCl7CiAgICAgICAgICAgIGludCBMZWZ0ID0gbWF4KDBMTCwgaSAtIFJpZ2h0dHR0KTsKICAgICAgICAgICAgaW50IFJpZ2h0ID0gaSAtIExlZnR0dDsKICAgICAgICAgICAgZHBbaV0gPSBnZXQoMSwwLG4sTGVmdCxSaWdodCk7CiAgICAgICAgICAgIGlmKGRwW2ldID49IElORi8yKSBkcFtpXSA9IElORjsKICAgICAgICB9CiAgICAgICAgc2V0dmFsKDEsMCxuLGksZHBbaV0pOwogICAgfQogICAgY291dDw8KGRwW25dPj1JTkYgPyAtMSA6IGRwW25dKTsKICAgIHJldHVybiAwOwp9Cg==