#include<cstdio>
#include<cstring>
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");
}
}