#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
if(!(cin >> T)) return 0;
while(T--){
int N;
int64 K;
cin >> N >> K;
// compute denom = 2^{N-1} - 1, but cap it so it doesn't overflow and we only need it relative to K
__int128 pw = 1;
for(int i = 0; i < N-1; ++i){
// try to multiply by 2, but if pw is already huge relative to K, break
if(pw > (__int128)K + 5) { // small margin
break;
}
pw *= 2;
}
__int128 denom = pw - 1;
if(denom <= 0) denom = 1; // safety, though shouldn't happen
// compute a = 1 + ceil(K / denom)
__int128 a_minus1 = ( (__int128)K + denom - 1 ) / denom; // ceil division
int64 a = (int64)(1 + a_minus1);
// construct sequence
vector<int64> A;
A.reserve(N);
A.push_back(a);
int64 rem = K;
for(int i = 1; i <= N-1; ++i){
int64 cur = A.back();
int64 can = cur - 1; // m_i <= A_i -1
int64 take = min(can, rem);
int64 next = cur + take;
A.push_back(next);
rem -= take;
}
// rem must be zero
// output sequence
for(int i = 0; i < N; ++i){
if(i) cout << ' ';
cout << A[i];
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGludDY0ID0gbG9uZyBsb25nOwppbnQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGludCBUOwogICAgaWYoIShjaW4gPj4gVCkpIHJldHVybiAwOwogICAgd2hpbGUoVC0tKXsKICAgICAgICBpbnQgTjsKICAgICAgICBpbnQ2NCBLOwogICAgICAgIGNpbiA+PiBOID4+IEs7CiAgICAgICAgLy8gY29tcHV0ZSBkZW5vbSA9IDJee04tMX0gLSAxLCBidXQgY2FwIGl0IHNvIGl0IGRvZXNuJ3Qgb3ZlcmZsb3cgYW5kIHdlIG9ubHkgbmVlZCBpdCByZWxhdGl2ZSB0byBLCiAgICAgICAgX19pbnQxMjggcHcgPSAxOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBOLTE7ICsraSl7CiAgICAgICAgICAgIC8vIHRyeSB0byBtdWx0aXBseSBieSAyLCBidXQgaWYgcHcgaXMgYWxyZWFkeSBodWdlIHJlbGF0aXZlIHRvIEssIGJyZWFrCiAgICAgICAgICAgIGlmKHB3ID4gKF9faW50MTI4KUsgKyA1KSB7IC8vIHNtYWxsIG1hcmdpbgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHcgKj0gMjsKICAgICAgICB9CiAgICAgICAgX19pbnQxMjggZGVub20gPSBwdyAtIDE7CiAgICAgICAgaWYoZGVub20gPD0gMCkgZGVub20gPSAxOyAvLyBzYWZldHksIHRob3VnaCBzaG91bGRuJ3QgaGFwcGVuCiAgICAgICAgLy8gY29tcHV0ZSBhID0gMSArIGNlaWwoSyAvIGRlbm9tKQogICAgICAgIF9faW50MTI4IGFfbWludXMxID0gKCAoX19pbnQxMjgpSyArIGRlbm9tIC0gMSApIC8gZGVub207IC8vIGNlaWwgZGl2aXNpb24KICAgICAgICBpbnQ2NCBhID0gKGludDY0KSgxICsgYV9taW51czEpOwogICAgICAgIC8vIGNvbnN0cnVjdCBzZXF1ZW5jZQogICAgICAgIHZlY3RvcjxpbnQ2ND4gQTsKICAgICAgICBBLnJlc2VydmUoTik7CiAgICAgICAgQS5wdXNoX2JhY2soYSk7CiAgICAgICAgaW50NjQgcmVtID0gSzsKICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IE4tMTsgKytpKXsKICAgICAgICAgICAgaW50NjQgY3VyID0gQS5iYWNrKCk7CiAgICAgICAgICAgIGludDY0IGNhbiA9IGN1ciAtIDE7IC8vIG1faSA8PSBBX2kgLTEKICAgICAgICAgICAgaW50NjQgdGFrZSA9IG1pbihjYW4sIHJlbSk7CiAgICAgICAgICAgIGludDY0IG5leHQgPSBjdXIgKyB0YWtlOwogICAgICAgICAgICBBLnB1c2hfYmFjayhuZXh0KTsKICAgICAgICAgICAgcmVtIC09IHRha2U7CiAgICAgICAgfQogICAgICAgIC8vIHJlbSBtdXN0IGJlIHplcm8KICAgICAgICAvLyBvdXRwdXQgc2VxdWVuY2UKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgTjsgKytpKXsKICAgICAgICAgICAgaWYoaSkgY291dCA8PCAnICc7CiAgICAgICAgICAgIGNvdXQgPDwgQVtpXTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=