길이가 N인 수열 X가 주어진다. 1이상 N이하의 정수 K가 주어질 때, X를 한 번 변환하면 수열의 각 값은 다음과 같이 바뀐다. X′은 변환된 이후의 수열이며, ⊕는 Bitwise-XOR연산이다.
X′_1=X_1⊕X_2⊕⋯⊕X_K X′_2=X_2⊕X_3⊕⋯⊕X_K+1 ⋮ X′_N−K+1=X_N−K+1⊕X_N−K+2⊕⋯⊕X_N−1⊕X_N X′_N−K+2=X_N−K+2⊕X_N−K+3⊕⋯⊕X_N⊕X_1 ⋮ X′_N−1=X_N−1⊕X_N⊕⋯⊕X_K−3 ⊕X_K−2 X′_N=X_N⊕X_1⊕⋯⊕X_K−2 ⊕X_K−1
조금 더 편하게 표현하자면, X_i+N=X_i으로 봤을 때, X′_i=X_i⊕⋯⊕X_i+K−1인 것이다.
수열 X와 K가 주어질 때, 수열 X를 T번 변환한 수열을 구하는 프로그램을 작성하라.
첫 번째 줄에 세 정수 N, K, T(1≤K≤N≤105, 1≤T≤1018)가 공백 하나로 구분되어 주어진다.
두 번째 줄에는 N개의 정수 X_1,X_2,⋯,X_N(0≤X_i≤109)이 공백 하나로 구분되어 주어진다.
주어진 X를 T번 변환한 수열을 A라고 할 때, 첫 번째 줄에 A_1에서 A_N까지의 N개의 정수를 공백 하나로 구분하여 순서대로 출력한다.