#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 early: once 2^{k} > K we don't need exact big value
__int128 pw = 1; // will hold 2^{t}
int needed = N - 1;
for(int i = 0; i < needed; ++i){
// if pw already exceeded K (i.e., pw > K), then pw-1 > K-1, so denom > K and ceil(K/denom)=1
if(pw > (__int128)K) {
// we can stop; keep pw as-is (some power of two > K)
// no need to multiply further
break;
}
pw *= 2;
// continue until we've done needed multiplications or pw > K
}
__int128 denom = pw - 1;
if(denom <= 0) denom = 1; // safety
// compute a = 1 + ceil(K / denom)
__int128 a_minus1 = ( (__int128)K + denom - 1 ) / denom;
int64 a = (int64)(1 + a_minus1);
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 should be zero
// Output
for(int i = 0; i < N; ++i){
if(i) cout << ' ';
cout << A[i];
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGludDY0ID0gbG9uZyBsb25nOwppbnQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGludCBUOwogICAgaWYoIShjaW4gPj4gVCkpIHJldHVybiAwOwogICAgd2hpbGUoVC0tKXsKICAgICAgICBpbnQgTjsKICAgICAgICBpbnQ2NCBLOwogICAgICAgIGNpbiA+PiBOID4+IEs7CgogICAgICAgIC8vIGNvbXB1dGUgZGVub20gPSAyXntOLTF9IC0gMSwgYnV0IGNhcCBlYXJseTogb25jZSAyXntrfSA+IEsgd2UgZG9uJ3QgbmVlZCBleGFjdCBiaWcgdmFsdWUKICAgICAgICBfX2ludDEyOCBwdyA9IDE7IC8vIHdpbGwgaG9sZCAyXnt0fQogICAgICAgIGludCBuZWVkZWQgPSBOIC0gMTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbmVlZGVkOyArK2kpewogICAgICAgICAgICAvLyBpZiBwdyBhbHJlYWR5IGV4Y2VlZGVkIEsgKGkuZS4sIHB3ID4gSyksIHRoZW4gcHctMSA+IEstMSwgc28gZGVub20gPiBLIGFuZCBjZWlsKEsvZGVub20pPTEKICAgICAgICAgICAgaWYocHcgPiAoX19pbnQxMjgpSykgewogICAgICAgICAgICAgICAgLy8gd2UgY2FuIHN0b3A7IGtlZXAgcHcgYXMtaXMgKHNvbWUgcG93ZXIgb2YgdHdvID4gSykKICAgICAgICAgICAgICAgIC8vIG5vIG5lZWQgdG8gbXVsdGlwbHkgZnVydGhlcgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHcgKj0gMjsKICAgICAgICAgICAgLy8gY29udGludWUgdW50aWwgd2UndmUgZG9uZSBuZWVkZWQgbXVsdGlwbGljYXRpb25zIG9yIHB3ID4gSwogICAgICAgIH0KICAgICAgICBfX2ludDEyOCBkZW5vbSA9IHB3IC0gMTsKICAgICAgICBpZihkZW5vbSA8PSAwKSBkZW5vbSA9IDE7IC8vIHNhZmV0eQoKICAgICAgICAvLyBjb21wdXRlIGEgPSAxICsgY2VpbChLIC8gZGVub20pCiAgICAgICAgX19pbnQxMjggYV9taW51czEgPSAoIChfX2ludDEyOClLICsgZGVub20gLSAxICkgLyBkZW5vbTsKICAgICAgICBpbnQ2NCBhID0gKGludDY0KSgxICsgYV9taW51czEpOwoKICAgICAgICB2ZWN0b3I8aW50NjQ+IEE7CiAgICAgICAgQS5yZXNlcnZlKE4pOwogICAgICAgIEEucHVzaF9iYWNrKGEpOwogICAgICAgIGludDY0IHJlbSA9IEs7CiAgICAgICAgZm9yKGludCBpID0gMTsgaSA8PSBOLTE7ICsraSl7CiAgICAgICAgICAgIGludDY0IGN1ciA9IEEuYmFjaygpOwogICAgICAgICAgICBpbnQ2NCBjYW4gPSBjdXIgLSAxOyAvLyBtX2kgPD0gQV9pIC0xCiAgICAgICAgICAgIGludDY0IHRha2UgPSBtaW4oY2FuLCByZW0pOwogICAgICAgICAgICBpbnQ2NCBuZXh0ID0gY3VyICsgdGFrZTsKICAgICAgICAgICAgQS5wdXNoX2JhY2sobmV4dCk7CiAgICAgICAgICAgIHJlbSAtPSB0YWtlOwogICAgICAgIH0KICAgICAgICAvLyByZW0gc2hvdWxkIGJlIHplcm8KICAgICAgICAvLyBPdXRwdXQKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgTjsgKytpKXsKICAgICAgICAgICAgaWYoaSkgY291dCA8PCAnICc7CiAgICAgICAgICAgIGNvdXQgPDwgQVtpXTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=