#include <bits/stdc++.h>

using namespace std;

int n;
int k;

int DP(int l, int r, int niz[], int x, int dp[])
{
    if(r == l)
    {
        dp[r] = niz[r];
        return dp[r];
    }
    
    dp[r] = max(DP(l, r-1, niz, x, dp), DP(l, r-1, niz, max(1, x-1), dp));
    return dp[r] + niz[r] * x;
}


int main()
{
    int x;
    cin >> n >> k >> x;

    int niz[n];
    int dp[k];

    for(int i = 0; i < n; i++)
    {
        cin >> niz[i];
    }

    for(int i = 0; i < n-k+1; i++)
    {
        for(int j = 0; j < k; j++)
        {
            dp[j] = 0;
        }

        if(i == n-k)
        {
            cout << DP(i, i+k, niz, x, dp) << endl;
        }
        else
        {
            cout << DP(i, i+k, niz, x, dp) << " ";
        }
    }


    return 0;
}