#include<bits/stdc++.h>
using namespace std;
const int N = 5e5+10;
long long c,n,k,tot;
long long a[N],b[N],z[N],w[N];
map<long long ,long long> m,f,g,xiao,wei;
long long read(){
long long s=1,h=0;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') s=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
h=h*10+ch-'0';
ch=getchar();
}
return s*h;
}
int main(){
c=read();
n=read();
k=read();
for(int i=1;i<=n;i++){
a[i]=read();
b[i]=a[i];
m[a[i]]++;
xiao[a[i]]=LLONG_MAX;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
z[i]=z[i-1]+a[i];
}
long long q=1;
for(int i=1;i<=n;i++){
if(f[a[i]]) continue;
f[a[i]]=n-(i+m[a[i]]-1);
g[a[i]]=f[a[i]]+m[a[i]];
f[a[i]]++;
if(f[a[i]]<=k&&k<=g[a[i]]){
w[q]+=a[i];
w[i+m[a[i]]]-=a[i];
q=(i+m[a[i]]-1);
}
}
for(int i=1;i<=n;i++){
w[i]+=w[i-1];
if(w[i]) xiao[a[i]]=w[i]-a[i];
}
for(int i=1;i<=n;i++){
if(f[a[i]]>k||wei[a[i]])continue;
wei[a[i]]=1;
long long res=0,fk=k-f[a[i]],yk=0,q=i;
res=z[i-1]-z[i-fk-1];
res=(fk*a[i]-res);
xiao[a[i]]=min(xiao[a[i]],res);
}
for(int i=1;i<=n;i++){
printf("%lld\n",xiao[b[i]]);
}
return 0;
}