import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main
{
static int N= (int) (5e5+10);
static Nod[] arr=new Nod[N];
static long[] f=new long[N];
static long[] sum=new long[N];
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
long c = scan.nextLong();
long n = scan.nextLong();
long k = scan.nextLong();
for(int i=1;i<=n;i++)
{
arr[i]=new Nod();
arr[i].v=scan.nextInt();
arr[i].i=i;
}
Arrays.sort(arr, 1, (int) (n + 1), new Comparator<Nod>() {
@Override
public int compare(Nod o1, Nod o2)
{
return o2.v-o1.v;
}
});
for(int i = (int) k; i<=n; i++)
{
sum[arr[i].i]=arr[(int) k].v-arr[i].v;
}
for(int i = (int) (k-1); i>=1; i--)
{
f[i]=f[i+1]+(k-i)*(arr[i].v-arr[i+1].v);
sum[arr[i].i]=f[i];
}
for(int i=1;i<=n;i++)
{
System.out.println(sum[i]);
}
}
}
class Nod
{
int i;
int v;
}