#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<queue>
#include<set>
#include<map>
using namespace std;
int main()
{
//cout<<!1<<endl;
int n,L,t;
cin>>n>>L>>t;
int *a=new int [n];
int *b=new int [n];//前进方向
fill(b,b+n,1);
for(int i=0;i<n;i++)
{
cin>>a[i];
if(a[i]==L)
{
b[i]=-b[i];
}
}
for(int i=1;i<=t;i++)
{//时间t
for(int j=0;j<n;j++)
{//n个球
a[j]+=b[j];
if(a[j]==L||a[j]==0)
{
b[j]=-b[j];
}
}
//如何检测碰撞!!!
for(int k=0;k<n;k++)
{//小球的前后顺序一定不会变,所以从下一个开始判断即可
for(int y=k+1;y<n;y++)
{
if(a[k]==a[y])
{
b[y]=-b[y];
b[k]=-b[k];
}
}
}
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}