#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    long long a, c, k, n, x;
    scanf("%lld%lld%lld", &n, &k, &x);
    long long p[n+1];
    for(long long i=1; i<=n; i++)
        scanf("%lld", &p[i]);
    long long ok;
    long long br=0, odg[n-k+1];
    for(long long i=1; i<=n, 0<=p[i]; i++)
    if(i==n) ok=1;
    else ok=0;
    if(ok)
    {
        for(long long i=1; i<=n-k; i++)
    {
        a=0;
        long long b[k+1];
        long long m=i;
        for(long long j=1; j<=k; j++)
            b[j]=p[m++];
        c=1;
        for(long long j=1; j<=k; j++)
        {
            a+=c*b[j];
            if(c<x) c++;
        }
        odg[br]=a;
        br++;
    }
    for(long long i=0; i<n-k+1; i++)
        printf("%lld ", odg[i]);
    }


    //x=2
    long long odgovori[n-k+2];
    for(long long i=1; i<=n-k; i++) //podnizovi
    {
        a=0;
        long long b[k+1];
        long long m=i;
        for(long long j=1; j<=k; j++)
            b[j]=p[m++];
        c=1;
        long long brojac=1;
        long long zbirpre[n-k+2], zbirposle[n-k+2];
        for(long long j=1; j<=n-k+2; j++)
            zbirpre[j]=zbirposle[j]=0;
        for(long long j=2; j<=k-1; j++)
        {
            for(long long pre=1; pre<=j; pre++)
                zbirpre[brojac]+=b[pre];
            for(long long posle=j+1; posle<=k; posle++)
                zbirposle[brojac]+=b[posle];
            brojac++;
        }
        long long max=0;
        for(long long ind=1; ind<=n-k+1; ind++)
            if(max<zbirpre[ind]+2*zbirposle[ind]) max=zbirpre[ind]+2*zbirposle[ind];
        odgovori[i]=max;
    }
    for(long long i=1; i<=n-k; i++)
        printf("%lld ", odgovori[i]);
}