#include #include const int maxn = 200005; int a[maxn]; int b[maxn]; bool isodd(long a, long b) { if((a&b)==b) return true; else return false; } int main() { int t ; scanf("%d", &t); for(int i = 1; i <= t; i ++) { memset(b,0,sizeof(b)); int n,m; scanf("%d%d",&n,&m); for(int j = 1; j <= n; j ++) { scanf("%d", &a[j]); } for(int j = n; j >= 1; j --) { if(isodd(n + m - 1 - j, m - 1)) { for(int k = n; k >= n - j + 1; k --) { b[k]^=a[k + j - n]; } } } for(int k = 1; k <= n; k ++) { if(k == 1) { printf("%d",b[k]); } else printf(" %d",b[k]); } printf("\n"); } }