//Taking numbers as 1 2 4 .. 32 to maximise xor and taking the rest as 1
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
int t;
cin>>t;
while(t--)
{
ll n,k,k1;
cin>>n>>k;
int b=0;
k1=k;
while(k1!=0)
{
b++;
k1=k1>>1;
}
if(n==1)
{
cout<<k<<endl;
continue;
}
if(b==1)
{
for(int i=0;i<n;i++)
cout<<1<<" ";
cout<<endl;
continue;
}
ll g[n];
if(b==n)
{ ll serial=1;
for(int i=0;i<b;i++)
{
g[i]=serial;
serial=serial<<1;
}
}
else if(b<n)
{
if((n-b)&1)
{
g[0]=1;
g[1]=3;
ll serial=4;
int i=2;
for( ;i<b;i++)
{
g[i]=serial;
serial=serial<<1;
}
for(;i<n;i++)
g[i]=1;
}
else{int i=0;ll serial=1;
for(;i<b;i++)
{
g[i]=serial;
serial=serial<<1;
}
for(;i<n;i++)
{
g[i]=1;
}
}
}
else{
ll serial=1<<(b-1);
for(int j=n-1;j>=1;j--)
{
g[j]=serial;
serial=serial>>1;
}
serial=serial<<1;
serial--;
g[0]=serial;
}
ll tt=0;
for(int i=0;i<n;i++)
{
cout<<g[i]<<" ";
tt^=g[i];
}
// cout<<tt;
cout<<endl;
}
return 0;
}
Ly9UYWtpbmcgbnVtYmVycyBhcyAxIDIgNCAuLiAzMiB0byBtYXhpbWlzZSB4b3IgYW5kIHRha2luZyB0aGUgcmVzdCBhcyAxCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKaW50IG1haW4oKSB7CglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSkKCXsKCQlsbCBuLGssazE7CgkJY2luPj5uPj5rOwoJCWludCBiPTA7CgkJazE9azsKCQl3aGlsZShrMSE9MCkKCQl7CgkJCWIrKzsKCQkJazE9azE+PjE7CgkJfQoJCWlmKG49PTEpCgkJewoJCQljb3V0PDxrPDxlbmRsOwoJCQljb250aW51ZTsKCQl9CgkJaWYoYj09MSkKCQl7CgkJCWZvcihpbnQgaT0wO2k8bjtpKyspCgkJCWNvdXQ8PDE8PCIgIjsKCQkJY291dDw8ZW5kbDsKCQkJY29udGludWU7CgkJfQoJCQoJCWxsIGdbbl07CgkJaWYoYj09bikKCQl7ICAgbGwgc2VyaWFsPTE7CgkJCWZvcihpbnQgaT0wO2k8YjtpKyspCgkJCXsKCQkJCWdbaV09c2VyaWFsOwoJCQkJc2VyaWFsPXNlcmlhbDw8MTsKCQkJfQoJCX0KCQllbHNlIGlmKGI8bikKCQl7CgkJCWlmKChuLWIpJjEpCgkJCXsKCQkJCWdbMF09MTsKCQkJCWdbMV09MzsKCQkJCWxsIHNlcmlhbD00OwoJCQkJaW50IGk9MjsKCQkJCWZvciggO2k8YjtpKyspCgkJCQl7CgkJCQkJZ1tpXT1zZXJpYWw7CgkJCQkJc2VyaWFsPXNlcmlhbDw8MTsKCQkJCX0KCQkJCWZvcig7aTxuO2krKykKCQkJCWdbaV09MTsKCQkJfQoJCQllbHNle2ludCBpPTA7bGwgc2VyaWFsPTE7CgkJCQlmb3IoO2k8YjtpKyspCgkJCQl7CgkJCQkJZ1tpXT1zZXJpYWw7CgkJCQkJc2VyaWFsPXNlcmlhbDw8MTsKCQkJCX0KCQkJCWZvcig7aTxuO2krKykKCQkJCXsKCQkJCQlnW2ldPTE7CgkJCQl9CgkJCX0KCQl9CgkJZWxzZXsKCQkJbGwgc2VyaWFsPTE8PChiLTEpOwoJCQlmb3IoaW50IGo9bi0xO2o+PTE7ai0tKQoJCQl7CgkJCQlnW2pdPXNlcmlhbDsKCQkJCXNlcmlhbD1zZXJpYWw+PjE7CgkJCX0KCQkJc2VyaWFsPXNlcmlhbDw8MTsKCQkJc2VyaWFsLS07CgkJCWdbMF09c2VyaWFsOwoJCX0KCQlsbCB0dD0wOwoJCWZvcihpbnQgaT0wO2k8bjtpKyspCgkJewoJCQljb3V0PDxnW2ldPDwiICI7CgkJCXR0Xj1nW2ldOwoJCX0KCQkvLyBjb3V0PDx0dDsKCQljb3V0PDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=