#include <bits/stdc++.h>
#define int int64_t

using namespace std;

vector<string> komb;

void generisi(int k, int x, int i, string s, int j){
    if(i==k){
        komb.push_back(s);
        return;
    }

    if(j == x){
        generisi(k, x, i+1, s+'0', j);
    }
    else if(k-i == x-j){
        generisi(k, x, i+1, s+'1', j+1);
    }
    else{
        generisi(k, x, i+1, s+'0', j);
        generisi(k, x, i+1, s+'1', j+1);
    }
}
int32_t main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

    int n, k, x; cin >> n >> k >> x;
    x--;
    vector<int> v(n);

    bool poz = true;

    for(int i = 0; i < n; i++){
        cin >> v[i];
        if(v[i] < 0) poz = false;
    }

    if(poz){
        int ans = 0, c = 1;
        for(int i = 0; i < n-k+1; i++){
            ans = 0, c = 1;
            for(int j = i; j < i+k; j++){
                ans += v[j]*c;
                if(c <= x) c++;
            }
            cout << ans << ' ';
        }
        return 0;
    }

    generisi(k, x, 0, "", 0);

    int tr = 0, c = 1, mx = -1e18;
    for(int i = 0; i < n-k+1; i++){
        tr = 0, c = 1, mx = -1e18;
        for(auto s : komb){
            tr = 0; c = 1;
            for(int j = i; j < i+k; j++){
                tr += v[j] * c;
                if(s[j-i] == '1') c++;
            }
            mx = max(mx, tr);
            //cout << tr << ' ' << s << '\n';
        }
        cout << mx << ' ';
    }
    return 0;
}