#include <bits/stdc++.h>

using namespace std;
#define int long long
signed main()
{
int n,k,x;
cin>>n>>k>>x;
/*
multiset<int>a;
a.extract(67);
*/
vector<int>a(n);
for(int i = 0;i<n;i++){
cin>>a[i];
}
bool poz=true;
for(int i = 0;i<n;i++)
if(a[i]<0)
poz=false;
vector<int>pref(n);
pref[0]=a[0];
for(int i = 1;i<n;i++)
pref[i]=pref[i-1]+a[i];
if((n-k)*(k+30)<10000000&&poz==false){
for(int i = 0;i<n-k+1;i++){
vector<int>v(1);
for(int j = i+1;j<i+k;j++){
if(j>0){
v.push_back(pref[i+k-1]-pref[j-1]);
}
else
v.push_back(pref[i+k-1]);
}
int res=0;
if(i>0){
res+=(pref[i+k-1]-pref[i-1]);
}
else
res+=(pref[i+k-1]);

sort(v.rbegin(),v.rend());

for(int k= 0;k<x-1;k++)
res+=v[k];
cout<<res<<" ";
}

}
if(poz==true){
vector<int>poc(n);
for(int i = 0;i<x;i++)
poc[0]+=a[i]*(i+1);
for(int i = 1;i<n-x+1;i++){
if(i>=2)
poc[i]=poc[i-1]-(pref[i+x-2]-pref[i-2])+x*a[i+x-1];
else
poc[i]=poc[i-1]-(pref[x-1])+x*a[i+x-1];

}
/*
for(int i = 0;i<n;i++)
cout<<poc[i]<<" ";
cout<<endl;
*/
for(int i = 0;i<n-k+1;i++){
int res=poc[i]+x*(pref[i+k-1]-pref[i+x-1]);
cout<<res<<" ";
}

}






    return 0;
}