#include<bits/stdc++.h>
using namespace std;
/*
1.首先进行排序 (结构体数组的排序)
2.结果的输出:不是根据change[i].id 的1-n的输出,而是根据其下边的1-n来输出
*/
struct node
{
int id;//排序后的下标
int no;//1标记正方向,0标记负方向
int num;
}change[102];
int main()
{
int n,L,t,arr[102],flag=0,temp=-1;
cin>>n>>L>>t;
//数据输入
for(int i=1;i<=n;i++)
{
cin>>arr[i];
change[i].id=i;
change[i].num=arr[i];
if(arr[i]==L)
change[i].no=0;
else
change[i].no=1;
}
//结构体数组排序排序
for(int i=1;i<n;i++)
{
node t1;
for(int j=i;j<=n;j++)
{
if(change[i].num>change[j].num)
{
t1=change[i];
change[i]=change[j];
change[j]=t1;
}
}
}
//操作
for(int i=1;i<=t;i++)
{
for(int j=1;j<=n;j++)
{
if(arr[j]==L)
{
change[j].no=0;
change[j].num-=1;
}
else if(arr[j]==0)
{
change[j].no=1;
change[j].num+=1;
}
else
{
for(int k=1;k<=n;k++)
{
if(arr[j]!=arr[k]&&j!=k) flag=1;
else if(arr[j]==arr[k]&&j!=k)
{
flag=0;
temp=k;
change[j].no=0;
break;
}
}
if(flag==1)
{
if(change[j].no==1) change[j].num+=1;
else if(change[j].no==0) change[j].num-=1;
}
else if(temp>j)
{
change[j].no=0;
change[j].num-=1;
}
else
{
change[j].no=1;
change[j].num+=1;
}
}
}
for(int p=1;p<=n;p++)
arr[p]=change[p].num;
}
//输出
int p=1;
while(p<=n)
{
for(int re=1;re<=n;re++)
{
if(change[re].id==p)
{
cout<<change[re].num<<" ";
break;
}
}
p++;
}
using namespace std;
/*
1.首先进行排序 (结构体数组的排序)
2.结果的输出:不是根据change[i].id 的1-n的输出,而是根据其下边的1-n来输出
*/
struct node
{
int id;//排序后的下标
int no;//1标记正方向,0标记负方向
int num;
}change[102];
int main()
{
int n,L,t,arr[102],flag=0,temp=-1;
cin>>n>>L>>t;
//数据输入
for(int i=1;i<=n;i++)
{
cin>>arr[i];
change[i].id=i;
change[i].num=arr[i];
if(arr[i]==L)
change[i].no=0;
else
change[i].no=1;
}
//结构体数组排序排序
for(int i=1;i<n;i++)
{
node t1;
for(int j=i;j<=n;j++)
{
if(change[i].num>change[j].num)
{
t1=change[i];
change[i]=change[j];
change[j]=t1;
}
}
}
//操作
for(int i=1;i<=t;i++)
{
for(int j=1;j<=n;j++)
{
if(arr[j]==L)
{
change[j].no=0;
change[j].num-=1;
}
else if(arr[j]==0)
{
change[j].no=1;
change[j].num+=1;
}
else
{
for(int k=1;k<=n;k++)
{
if(arr[j]!=arr[k]&&j!=k) flag=1;
else if(arr[j]==arr[k]&&j!=k)
{
flag=0;
temp=k;
change[j].no=0;
break;
}
}
if(flag==1)
{
if(change[j].no==1) change[j].num+=1;
else if(change[j].no==0) change[j].num-=1;
}
else if(temp>j)
{
change[j].no=0;
change[j].num-=1;
}
else
{
change[j].no=1;
change[j].num+=1;
}
}
}
for(int p=1;p<=n;p++)
arr[p]=change[p].num;
}
//输出
int p=1;
while(p<=n)
{
for(int re=1;re<=n;re++)
{
if(change[re].id==p)
{
cout<<change[re].num<<" ";
break;
}
}
p++;
}
}