#include #include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) ll op(ll a, ll b) { return max(a, b); } ll e() { return 0; } int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int n, b, c; cin >> n >> b >> c; b--; c--; vector a(n + 1, 0); rep(i, n) cin >> a[i]; for (int i = n; i > 0; i--) a[i - 1] += a[i]; atcoder::segtree seg1(n + 1), seg2(n + 1); seg2.set(0, a[0]); for (int i = 1; i <= n; i++) { seg1.set(i, seg2.prod(max(0, i - c), i) - a[i]); seg2.set(i, seg1.prod(max(0, i - b), i) + a[i]); } cout << max(seg1.get(n), seg2.get(n)) << endl; return 0; }