#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const long long INF = 1e18;
long long solve(int N, int K, int L, int R, vector<int>& a) {
// dp[i][j] = min cost to partition first i elements into j groups
vector<vector<long long>> dp(N + 1, vector<long long>(K + 1, INF));
dp[0][0] = 0;
for (int j = 1; j <= K; ++j) {
for (int i = 1; i <= N; ++i) {
int current_max = -1e9 - 7;
int current_min = 1e9 + 7;
// Try all possible lengths for the j-th group ending at i
// The group starts at index i - len and ends at i - 1
for (int len = 1; len <= min(i, R); ++len) {
int val = a[i - len];
current_max = max(current_max, val);
current_min = min(current_min, val);
if (len >= L && dp[i - len][j - 1] != INF) {
dp[i][j] = min(dp[i][j], dp[i - len][j - 1] + (current_max - current_min));
}
}
}
}
return dp[N][K];
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N, K, L, R;
if (!(cin >> N >> K >> L >> R)) return 0;
vector<int> a(N);
for (int i = 0; i < N; ++i) {
cin >> a[i];
}
cout << solve(N, K, L, R, a) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBJTkYgPSAxZTE4OwoKbG9uZyBsb25nIHNvbHZlKGludCBOLCBpbnQgSywgaW50IEwsIGludCBSLCB2ZWN0b3I8aW50PiYgYSkgewogICAgLy8gZHBbaV1bal0gPSBtaW4gY29zdCB0byBwYXJ0aXRpb24gZmlyc3QgaSBlbGVtZW50cyBpbnRvIGogZ3JvdXBzCiAgICB2ZWN0b3I8dmVjdG9yPGxvbmcgbG9uZz4+IGRwKE4gKyAxLCB2ZWN0b3I8bG9uZyBsb25nPihLICsgMSwgSU5GKSk7CiAgICAKICAgIGRwWzBdWzBdID0gMDsKCiAgICBmb3IgKGludCBqID0gMTsgaiA8PSBLOyArK2opIHsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBOOyArK2kpIHsKICAgICAgICAgICAgaW50IGN1cnJlbnRfbWF4ID0gLTFlOSAtIDc7CiAgICAgICAgICAgIGludCBjdXJyZW50X21pbiA9IDFlOSArIDc7CgogICAgICAgICAgICAvLyBUcnkgYWxsIHBvc3NpYmxlIGxlbmd0aHMgZm9yIHRoZSBqLXRoIGdyb3VwIGVuZGluZyBhdCBpCiAgICAgICAgICAgIC8vIFRoZSBncm91cCBzdGFydHMgYXQgaW5kZXggaSAtIGxlbiBhbmQgZW5kcyBhdCBpIC0gMQogICAgICAgICAgICBmb3IgKGludCBsZW4gPSAxOyBsZW4gPD0gbWluKGksIFIpOyArK2xlbikgewogICAgICAgICAgICAgICAgaW50IHZhbCA9IGFbaSAtIGxlbl07CiAgICAgICAgICAgICAgICBjdXJyZW50X21heCA9IG1heChjdXJyZW50X21heCwgdmFsKTsKICAgICAgICAgICAgICAgIGN1cnJlbnRfbWluID0gbWluKGN1cnJlbnRfbWluLCB2YWwpOwoKICAgICAgICAgICAgICAgIGlmIChsZW4gPj0gTCAmJiBkcFtpIC0gbGVuXVtqIC0gMV0gIT0gSU5GKSB7CiAgICAgICAgICAgICAgICAgICAgZHBbaV1bal0gPSBtaW4oZHBbaV1bal0sIGRwW2kgLSBsZW5dW2ogLSAxXSArIChjdXJyZW50X21heCAtIGN1cnJlbnRfbWluKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGRwW05dW0tdOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKCiAgICBpbnQgTiwgSywgTCwgUjsKICAgIGlmICghKGNpbiA+PiBOID4+IEsgPj4gTCA+PiBSKSkgcmV0dXJuIDA7CgogICAgdmVjdG9yPGludD4gYShOKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CgogICAgY291dCA8PCBzb2x2ZShOLCBLLCBMLCBSLCBhKSA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9