#include #include using namespace std; using namespace atcoder; #define rep(i, l, r) for (ll i = (l); i < (r); ++i) #define all(x) (x).begin(), (x).end() #define sz(x) (int)(x).size() using ll = long long; using ull = unsigned long long; using ld = long double; using pl = pair; using vi = vector; using vl = vector; using vvl = vector>; using vvvl = vector>>; template using pq_ = priority_queue, greater>; #define sz(x) (int)(x).size() typedef pair pii; using mint=modint998244353; // g++ a.cpp -std=c++23 -I. // g++ -std=c++23 -I. a.cpp -o main // g++ -std=c++23 -I. anaive.cpp -o naive // g++ -std=c++23 -I. agene.cpp -o gene ll op(ll a, ll b) { return min(a, b); } ll e() { return (ll)((ll)1e18); } int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); ll n,b,c; cin>>n>>c>>b; segtree seg(n+1); vl z(n); rep(i,0,n){ cin>>z[i]; } ll u=0; seg.set(0,0); rep(i,0,n){ if(c!=2||i==0)seg.set(i+1,seg.prod(max((ll)0,i+1-b),i+1)+z[i]); else seg.set(i+1,seg.prod(max((ll)0,i+1-b),i)+z[i]); u+=z[i]; } cout<