#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define fi first
#define se second
#define FOR(i,a,b) for(int i=(a); i<=(b); i++)
#define el '\n'
const int maxN = 2e5 + 5;
const int LOG = 18;
const ll inf = 1e18; // Dùng ll để tránh tràn số
int n;
pii lim;
int a[maxN];
// Sparse Table để truy vấn max/min đoạn O(1)
int maxVal[maxN][LOG + 5], minVal[maxN][LOG + 5];
int getMax(int l, int r) {
int k = 31 - __builtin_clz(r - l + 1);
return max(maxVal[l][k], maxVal[r - (1 << k) + 1][k]);
}
int getMin(int l, int r) {
int k = 31 - __builtin_clz(r - l + 1);
return min(minVal[l][k], minVal[r - (1 << k) + 1][k]);
}
void solve() {
// 1. Xây dựng Sparse Table O(N log N)
FOR(i, 1, n) {
maxVal[i][0] = a[i];
minVal[i][0] = a[i];
}
for (int j = 1; (1 << j) <= n; j++) {
for (int i = 1; i + (1 << j) - 1 <= n; i++) {
maxVal[i][j] = max(maxVal[i][j - 1], maxVal[i + (1 << (j - 1))][j - 1]);
minVal[i][j] = min(minVal[i][j - 1], minVal[i + (1 << (j - 1))][j - 1]);
}
}
// 2. Tối ưu DP cho N lớn
// Nếu đề bài cho phép tìm min chi phí chia mảng thành bất kỳ số lượng đoạn nào:
vector<ll> dp(n + 1, inf);
dp[0] = 0;
FOR(i, 1, n) {
// Thử các độ dài k hợp lệ cho đoạn kết thúc tại i (từ lim.fi đến lim.se)
FOR(k, lim.fi, lim.se) {
int prev_idx = i - k;
if (prev_idx < 0) break; // k tăng dần, nếu âm thì break sớm
if (dp[prev_idx] != inf) {
int mx = getMax(prev_idx + 1, i);
int mn = getMin(prev_idx + 1, i);
ll val = mx - mn;
dp[i] = min(dp[i], dp[prev_idx] + val);
}
}
}
if (dp[n] == inf) cout << -1 << el;
else cout << dp[n] << el;
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
if (!(cin >> n >> lim.fi >> lim.se)) return 0;
FOR(i, 1, n) cin >> a[i];
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcgCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIEZPUihpLGEsYikgZm9yKGludCBpPShhKTsgaTw9KGIpOyBpKyspCiNkZWZpbmUgZWwgJ1xuJwoKY29uc3QgaW50IG1heE4gPSAyZTUgKyA1Owpjb25zdCBpbnQgTE9HID0gMTg7CmNvbnN0IGxsIGluZiA9IDFlMTg7IC8vIETDuW5nIGxsIMSR4buDIHRyw6FuaCB0csOgbiBz4buRCgppbnQgbjsKcGlpIGxpbTsKaW50IGFbbWF4Tl07CgovLyBTcGFyc2UgVGFibGUgxJHhu4MgdHJ1eSB24bqlbiBtYXgvbWluIMSRb+G6oW4gTygxKQppbnQgbWF4VmFsW21heE5dW0xPRyArIDVdLCBtaW5WYWxbbWF4Tl1bTE9HICsgNV07CgppbnQgZ2V0TWF4KGludCBsLCBpbnQgcikgewogICAgaW50IGsgPSAzMSAtIF9fYnVpbHRpbl9jbHoociAtIGwgKyAxKTsKICAgIHJldHVybiBtYXgobWF4VmFsW2xdW2tdLCBtYXhWYWxbciAtICgxIDw8IGspICsgMV1ba10pOwp9CgppbnQgZ2V0TWluKGludCBsLCBpbnQgcikgewogICAgaW50IGsgPSAzMSAtIF9fYnVpbHRpbl9jbHoociAtIGwgKyAxKTsKICAgIHJldHVybiBtaW4obWluVmFsW2xdW2tdLCBtaW5WYWxbciAtICgxIDw8IGspICsgMV1ba10pOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgLy8gMS4gWMOieSBk4buxbmcgU3BhcnNlIFRhYmxlIE8oTiBsb2cgTikKICAgIEZPUihpLCAxLCBuKSB7CiAgICAgICAgbWF4VmFsW2ldWzBdID0gYVtpXTsKICAgICAgICBtaW5WYWxbaV1bMF0gPSBhW2ldOwogICAgfQogICAgZm9yIChpbnQgaiA9IDE7ICgxIDw8IGopIDw9IG47IGorKykgewogICAgICAgIGZvciAoaW50IGkgPSAxOyBpICsgKDEgPDwgaikgLSAxIDw9IG47IGkrKykgewogICAgICAgICAgICBtYXhWYWxbaV1bal0gPSBtYXgobWF4VmFsW2ldW2ogLSAxXSwgbWF4VmFsW2kgKyAoMSA8PCAoaiAtIDEpKV1baiAtIDFdKTsKICAgICAgICAgICAgbWluVmFsW2ldW2pdID0gbWluKG1pblZhbFtpXVtqIC0gMV0sIG1pblZhbFtpICsgKDEgPDwgKGogLSAxKSldW2ogLSAxXSk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIDIuIFThu5FpIMawdSBEUCBjaG8gTiBs4bubbgogICAgLy8gTuG6v3UgxJHhu4EgYsOgaSBjaG8gcGjDqXAgdMOsbSBtaW4gY2hpIHBow60gY2hpYSBt4bqjbmcgdGjDoG5oIGLhuqV0IGvhu7Mgc+G7kSBsxrDhu6NuZyDEkW/huqFuIG7DoG86CiAgICB2ZWN0b3I8bGw+IGRwKG4gKyAxLCBpbmYpOwogICAgZHBbMF0gPSAwOwoKICAgIEZPUihpLCAxLCBuKSB7CiAgICAgICAgLy8gVGjhu60gY8OhYyDEkeG7mSBkw6BpIGsgaOG7o3AgbOG7hyBjaG8gxJFv4bqhbiBr4bq/dCB0aMO6YyB04bqhaSBpICh04burIGxpbS5maSDEkeG6v24gbGltLnNlKQogICAgICAgIEZPUihrLCBsaW0uZmksIGxpbS5zZSkgewogICAgICAgICAgICBpbnQgcHJldl9pZHggPSBpIC0gazsKICAgICAgICAgICAgaWYgKHByZXZfaWR4IDwgMCkgYnJlYWs7IC8vIGsgdMSDbmcgZOG6p24sIG7hur91IMOibSB0aMOsIGJyZWFrIHPhu5ttCiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoZHBbcHJldl9pZHhdICE9IGluZikgewogICAgICAgICAgICAgICAgaW50IG14ID0gZ2V0TWF4KHByZXZfaWR4ICsgMSwgaSk7CiAgICAgICAgICAgICAgICBpbnQgbW4gPSBnZXRNaW4ocHJldl9pZHggKyAxLCBpKTsKICAgICAgICAgICAgICAgIGxsIHZhbCA9IG14IC0gbW47CiAgICAgICAgICAgICAgICBkcFtpXSA9IG1pbihkcFtpXSwgZHBbcHJldl9pZHhdICsgdmFsKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiAoZHBbbl0gPT0gaW5mKSBjb3V0IDw8IC0xIDw8IGVsOwogICAgZWxzZSBjb3V0IDw8IGRwW25dIDw8IGVsOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CiAgICAKICAgIGlmICghKGNpbiA+PiBuID4+IGxpbS5maSA+PiBsaW0uc2UpKSByZXR1cm4gMDsKICAgIEZPUihpLCAxLCBuKSBjaW4gPj4gYVtpXTsKICAgIAogICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9