#include <iostream>
#include <algorithm>


using namespace std;

int main(){
ios_base::sync_with_stdio(NULL);
cin.tie(nullptr);
long long n,k,x;
cin >> n >> k >> x;
bool svipoz=true;
long long a[n];
long long zb[n+1];
zb[0]=0;
for(long long i=0;i<n;i++){
    cin >> a[i];
    if(a[i]<0)svipoz=false;
    zb[i+1]=zb[i]+a[i];
}
if(svipoz){
    long long aura=0;
    long long c=1;
    for(long long i=0;i<n-k+1;i++){
            for(long long j=1;j<x;j++){
                aura+=j*a[i+j-1];
            }
            aura=zb[i+x-1]+x*(zb[i+k+1]-zb[i+x]);
        cout << aura << " ";
    }
}
else if(x==2){
    for(long long i=0;i<n-k+1;i++){
            long long r;
        for(long long j=i;j<k+i;j++){
            if(j==i){
                r=zb[i+1]-zb[i]+2*(zb[k+i]-zb[i+2]);
            }
            else{
                long long R=zb[i+1+j]-zb[i]+2*(zb[k+i+j]-zb[i+j+2]);
                r=max(r,R);
            }
        }
        cout << r << " ";
    }
}
cout << "\n";
return 0;
}