1 #include <iostream>
2 //#include <bits/stdc++.h>
3 #include <string>
4
5 using namespace std;
6
7 typedef struct {
8 int location;
9 int foreOrback;
10 }table;
11
12 bool isequal(table *tab,int i,int n,int L);
13 void change(table &tt);
14
15 void move(table *tab,int n,int L)
16 {
17 for(int i=0;i<n;i++)
18 {
19 if(isequal(tab,i,n,L))
20 tab[i].location+=tab[i].foreOrback;
21 else
22 {
23 //change(tab[i]);
24 tab[i].location+=tab[i].foreOrback;
25 }
26 }
27 }
28
29 bool isequal(table *tab,int i,int n,int L)
30 {
31 if(tab[i].location==L&&tab[i].foreOrback==1)
32 {
33 tab[i].foreOrback=-1;
34 return false;
35 }
36 else if(tab[i].location==0&&tab[i].foreOrback==-1)
37 {
38 tab[i].foreOrback=1;
39 return false;
40 }
41 for(int j=0;j<n;j++)
42 {
43 if(j!=i)
44 {
45 if(tab[j].location==tab[i].location)
46 {
47 change(tab[j]);
48 change(tab[i]);
49 return false;
50 }
51 }
52 }
53 return true;
54 }
55
56 void change(table &tt)
57 {
58 if(tt.foreOrback==-1)
59 tt.foreOrback=1;
60 else
61 tt.foreOrback=-1;
62 }
63
64 int main()
65 {
66 int n,L,t;
67 cin>>n>>L>>t;
68 table *s;
69 s=new table[n];
70 for(int i=0;i<n;i++)
71 {
72 cin>>s[i].location;
73 s[i].foreOrback=1;
74 }
75 while(t--)
76 {
77 move(s,n,L);
78 }
79 for(int i=0;i<n;i++)
80 {
81 if(i==0)
82 cout<<s[i].location;
83 else
84 cout<<" "<<s[i].location;
85 }
86 return 0;
87 }