시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB17111076.923%

문제

길이가 $N$인 수열 $X$가 주어진다. $1$이상 $N$이하의 정수 $K$가 주어질 때, $X$를 한 번 변환하면 수열의 각 값은 다음과 같이 바뀐다. $X'$은 변환된 이후의 수열이며, $\oplus$는 Bitwise-XOR연산이다.

$$X'_1 = X_1 \oplus X_2 \oplus \cdots \oplus X_K$$ $$X'_2 = X_2 \oplus X_3 \oplus \cdots \oplus X_{K+1}$$ $$ \vdots $$ $$X'_{N-K+1} = X_{N-K+1} \oplus X_{N-K+2} \oplus \cdots \oplus X_{N-1} \oplus X_N$$ $$X'_{N-K+2} = X_{N-K+2} \oplus X_{N-K+3} \oplus \cdots \oplus X_{N} \oplus X_1$$ $$ \vdots $$ $$X'_{N-1} = X_{N-1} \oplus X_N \oplus \cdots \oplus X_{K-3}  \oplus X_{K-2}$$ $$X'_{N} = X_{N} \oplus X_1 \oplus \cdots \oplus X_{K-2}  \oplus X_{K-1}$$

조금 더 편하게 표현하자면, $X_{i+N} = X_i$으로 봤을 때, $X'_i = X_i \oplus \cdots \oplus X_{i+K-1}$인 것이다.

수열 $X$와 $K$가 주어질 때, 수열 $X$를 $T$번 변환한 수열을 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 세 정수 $N$, $K$, $T$($1 ≤ K ≤ N ≤ 10^5$, $1 ≤ T ≤ 10^{18}$)가 공백 하나로 구분되어 주어진다.

두 번째 줄에는 $N$개의 정수 $X_1, X_2, \cdots , X_N$($0 ≤ X_i ≤ 10^9$)이 공백 하나로 구분되어 주어진다.

출력

주어진 $X$를 $T$번 변환한 수열을 $A$라고 할 때, 첫 번째 줄에 $A_1$에서 $A_N$까지의 $N$개의 정수를 공백 하나로 구분하여 순서대로 출력한다.

예제 입력 1

5 3 1
3 0 2 1 2

예제 출력 1

1 3 1 0 1

예제 입력 2

5 3 2
3 0 2 1 2

예제 출력 2

3 2 0 0 3

예제 입력 3

5 3 3
3 0 2 1 2

예제 출력 3

1 2 3 0 2

예제 입력 4

5 3 15
3 0 2 1 2

예제 출력 4

3 0 2 1 2

예제 입력 5

11 5 1000000000000000000
2 2 4 5 9 1 5 7 7 1 8

예제 출력 5

13 4 5 8 1 0 5 10 3 4 8
W3sicHJvYmxlbV9pZCI6IjE5MzAyIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiV2luZG93IFhPUiIsImRlc2NyaXB0aW9uIjoiPHA+XHVhZTM4XHVjNzc0XHVhYzAwICROJFx1Yzc3OCBcdWMyMThcdWM1ZjQgJFgkXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gJDEkXHVjNzc0XHVjMGMxICROJFx1Yzc3NFx1ZDU1OFx1Yzc1OCBcdWM4MTVcdWMyMTggJEskXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljOCBcdWI1NGMsICRYJFx1Yjk3YyZuYnNwO1x1ZDU1YyBcdWJjODggXHViY2MwXHVkNjU4XHVkNTU4XHViYTc0IFx1YzIxOFx1YzVmNFx1Yzc1OCBcdWFjMDEgXHVhYzEyXHVjNzQwIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NzQgXHViYzE0XHViMDEwXHViMmU0LiAkWCYjMzk7JFx1Yzc0MCBcdWJjYzBcdWQ2NThcdWI0MWMgXHVjNzc0XHVkNmM0XHVjNzU4IFx1YzIxOFx1YzVmNFx1Yzc3NFx1YmE3MCwgJFxcb3BsdXMkXHViMjk0Jm5ic3A7Qml0d2lzZS1YT1JcdWM1ZjBcdWMwYjBcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPiQkWCYjMzk7XzEgPSBYXzEgXFxvcGx1cyBYXzIgXFxvcGx1cyBcXGNkb3RzIFxcb3BsdXMgWF9LJCQgJCRYJiMzOTtfMiA9IFhfMiBcXG9wbHVzIFhfMyBcXG9wbHVzIFxcY2RvdHMgXFxvcGx1cyBYX3tLKzF9JCQgJCQgXFx2ZG90cyAkJCAkJFgmIzM5O197Ti1LKzF9ID0gWF97Ti1LKzF9IFxcb3BsdXMgWF97Ti1LKzJ9IFxcb3BsdXMgXFxjZG90cyBcXG9wbHVzIFhfe04tMX0gXFxvcGx1cyBYX04kJCAkJFgmIzM5O197Ti1LKzJ9ID0gWF97Ti1LKzJ9IFxcb3BsdXMgWF97Ti1LKzN9IFxcb3BsdXMgXFxjZG90cyBcXG9wbHVzIFhfe059IFxcb3BsdXMgWF8xJCQgJCQgXFx2ZG90cyAkJCAkJFgmIzM5O197Ti0xfSA9IFhfe04tMX0gXFxvcGx1cyBYX04gXFxvcGx1cyBcXGNkb3RzIFxcb3BsdXMgWF97Sy0zfSAmbmJzcDtcXG9wbHVzIFhfe0stMn0kJCAkJFgmIzM5O197Tn0gPSBYX3tOfSBcXG9wbHVzIFhfMSBcXG9wbHVzIFxcY2RvdHMgXFxvcGx1cyBYX3tLLTJ9ICZuYnNwO1xcb3BsdXMgWF97Sy0xfSQkPFwvcD5cclxuXHJcbjxwPlx1Yzg3MFx1YWUwOCBcdWIzNTQgXHVkM2I4XHVkNTU4XHVhYzhjIFx1ZDQ1Y1x1ZDYwNFx1ZDU1OFx1Yzc5MFx1YmE3NCwmbmJzcDskWF97aStOfSA9IFhfaSRcdWM3M2NcdWI4NWMgXHViZDI0XHVjNzQ0IFx1YjU0YywmbmJzcDskWCYjMzk7X2kgPSBYX2kgXFxvcGx1cyBcXGNkb3RzIFxcb3BsdXMgWF97aStLLTF9JFx1Yzc3OCBcdWFjODNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzIxOFx1YzVmNCAkWCRcdWM2NDAgJEskXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljOCBcdWI1NGMsIFx1YzIxOFx1YzVmNCAkWCRcdWI5N2MgJFQkXHViYzg4Jm5ic3A7XHViY2MwXHVkNjU4XHVkNTVjIFx1YzIxOFx1YzVmNFx1Yzc0NCBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1Yjc3Yy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYiBcdWJjODhcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YzEzOCBcdWM4MTVcdWMyMTggJE4kLCAkSyQsICRUJCgkMSAmbGU7IEsgJmxlOyBOICZsZTsgMTBeNSQsICQxICZsZTsgVCAmbGU7IDEwXnsxOH0kKVx1YWMwMCBcdWFjZjVcdWJjMzEgXHVkNTU4XHViMDk4XHViODVjJm5ic3A7XHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViNDUwIFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgJE4kXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOCAkWF8xLCBYXzIsIFxcY2RvdHMgLCBYX04kKCQwICZsZTsgWF9pICZsZTsgMTBeOSQpXHVjNzc0IFx1YWNmNVx1YmMzMSBcdWQ1NThcdWIwOThcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWM4ZmNcdWM1YjRcdWM5YzQgJFgkXHViOTdjICRUJFx1YmM4OCZuYnNwO1x1YmNjMFx1ZDY1OFx1ZDU1YyZuYnNwO1x1YzIxOFx1YzVmNFx1Yzc0NCAkQSRcdWI3N2NcdWFjZTAgXHVkNTYwIFx1YjU0YywmbmJzcDtcdWNjYWIgXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCAkQV8xJFx1YzVkMFx1YzExYyAkQV9OJFx1YWU0Y1x1YzljMFx1Yzc1OCAkTiRcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4XHViOTdjIFx1YWNmNVx1YmMzMSBcdWQ1NThcdWIwOThcdWI4NWMgXHVhZDZjXHViZDg0XHVkNTU4XHVjNWVjIFx1YzIxY1x1YzExY1x1YjMwMFx1Yjg1YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMTkzMDIiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJYT1IgVHJhbnNmb3JtYXRpb24iLCJkZXNjcmlwdGlvbiI6IjxwPllvdSBhcmUgZ2l2ZW4gYW4gaW50ZWdlciBhcnJheSBvZiBsZW5ndGggJE4kOiAkWCA9IFt4XzAsIHhfMSwgXFxsZG90cywgeF97Ti0xfV0kLjxcL3A+XHJcblxyXG48cD5MZXQgdXMgZGVmaW5lIGEgdHJhbnNmb3JtYXRpb24gb2YgJFgkLCB3aGljaCBpcyAkRl9rKFgpID0gXFxiaWdbZl97aywwfShYKSwgZl97aywxfShYKSwgXFxsZG90cywgZl97ayxOLTF9KFgpXFxiaWddJCwgYXMgZm9sbG93czo8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT4kayQgaXMgYW4gaW50ZWdlciBiZXR3ZWVuICQxJCBhbmQgJE4kLCBpbmNsdXNpdmUuPFwvbGk+XHJcblx0PGxpPiRcXGRpc3BsYXlzdHlsZSBmX3trLGl9KFgpID0gXFxiaWdvcGx1c197aj0wfV57ay0xfSB4X3soaStqKSBcXGJtb2QgTn0kLCB3aGVyZSAkaSQgaXMgYW4gaW50ZWdlciBiZXR3ZWVuICQwJCBhbmQgJE4tMSQsIGluY2x1c2l2ZSwgYW5kICRcXG9wbHVzJCBpcyBiaXR3aXNlIFhPUi48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5Zb3UgYXJlIGFsc28gZ2l2ZW4gdHdvIGludGVnZXJzICRUJCBhbmQgJEskLiBDYWxjdWxhdGUgdGhlIHZhbHVlICRGX0teVChYKSQgYW5kIHByaW50IGl0LiBOb3RlIHRoYXQgJEZfS14xKFgpID0gRl9LKFgpJCBhbmQgJEZfS150KFgpID0gRl9LXFxiaWcoRl9LXnt0LTF9KFgpXFxiaWcpJCBmb3IgJHQgJmd0OyAxJC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBmaXJzdCBsaW5lIGNvbnRhaW5zIHRocmVlIGludGVnZXJzOiAkTiQsICRLJCwgYW5kICRUJCAoJDEgXFxsZXEgSyBcXGxlcSBOIFxcbGVxIDEwXns1fSQsICQxIFxcbGVxIFQgXFxsZXEgMTBeezE4fSQpLjxcL3A+XHJcblxyXG48cD5UaGUgc2Vjb25kIGxpbmUgY29udGFpbnMgJE4kIG5vbi1uZWdhdGl2ZSBpbnRlZ2VycyAkeF8wLCB4XzEsIFxcbGRvdHMsIHhfe04tMX0kICgkMCBcXGxlcSB4X2kgXFxsZXEgMTBeOSQpLCB3aGVyZSAkeF9pJCBpcyB0aGUgJGkkLXRoIGVsZW1lbnQgb2YgdGhlIGFycmF5ICRYJCwgbnVtYmVyZWQgZnJvbSB6ZXJvLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkxldCAkRl9LXlQoWCkgPSBbYV8wLCBhXzEsIFxcbGRvdHMsIGFfe04tMX1dJC4gUHJpbnQgdGhlICROJCBpbnRlZ2VycyAkYV8wLCBhXzEsIFxcbGRvdHMsIGFfe04tMX0kIG9uIHRoZSBmaXJzdCBsaW5lLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=