n,L,t=input().split()
n,L,t=int(n),int(L),int(t)
lis=input().split()
lis1=[]
for i in range(n):
lis1.append([int(lis[i]),1,i])#记录初始小球的序号i
lis1=sorted(lis1)#根据位置的大小排序
for j in range(t):
for m in range(n):
lis1[m][0]+=lis1[m][1]
for k in range(n):
if k==0:
if lis1[k][0]==0:#到达原点时,改变运动方向
lis1[k][1]=1
if k==n-1:
if lis1[k][0]==L:#到达终点时,改变运动方向
lis1[k][1]=-1
if k<n-1:
if lis1[k][0]==lis1[k+1][0]:#两球相撞时,改变运动方向
lis1[k][1]=-1
lis1[k+1][1]=1
#根据原始序号输出位置
for i in range(n):
for j in range(n):
if lis1[j][2]==i:
print(lis1[j][0],end=' ')