#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--){
int64 N, K;
cin >> N >> K;
vector<int64> A(N);
if (N == 2){
// A1 minimal so that (A2 mod A1) = K; with monotonicity minimal A2 is A1+K
// Minimal A1 is K+1 -> A2 = A1 + K
A[0] = K + 1;
A[1] = A[0] + K;
} else {
// Compute denom = 2^{N-1}, but cap to K+1 to avoid overflow
long long denom = 1;
long long cap = K + 1; // if denom > K+1 then denom-1 >= K, good enough
for (int i = 0; i < N-1; ++i){
if (denom > cap) { denom = cap; break; }
denom = denom * 2;
if (denom > cap) { denom = cap; break; }
}
long long denom_minus1 = denom - 1;
if (denom_minus1 <= 0) denom_minus1 = 1; // safety (though N>=2 so denom>=2 normally)
if (denom_minus1 > K) denom_minus1 = K; // if denom-1 > K then ceil(K/denom_minus1)=1
// minimal A1 = 1 + ceil(K / denom_minus1)
int64 A1 = 1 + ( (K + denom_minus1 - 1) / denom_minus1 );
A[0] = A1;
long long rem = K;
for (int i = 0; i < N-1; ++i){
long long cap_r = A[i] - 1;
if (cap_r < 0) cap_r = 0;
long long take = min(rem, cap_r);
A[i+1] = A[i] + take;
rem -= take;
}
// rem should be zero now
}
for (int i = 0; i < N; ++i){
if (i) cout << ' ';
cout << A[i];
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGludDY0ID0gbG9uZyBsb25nOwoKaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBpbnQgVDsKICAgIGlmKCEoY2luID4+IFQpKSByZXR1cm4gMDsKICAgIHdoaWxlIChULS0pewogICAgICAgIGludDY0IE4sIEs7CiAgICAgICAgY2luID4+IE4gPj4gSzsKCiAgICAgICAgdmVjdG9yPGludDY0PiBBKE4pOwogICAgICAgIGlmIChOID09IDIpewogICAgICAgICAgICAvLyBBMSBtaW5pbWFsIHNvIHRoYXQgKEEyIG1vZCBBMSkgPSBLOyB3aXRoIG1vbm90b25pY2l0eSBtaW5pbWFsIEEyIGlzIEExK0sKICAgICAgICAgICAgLy8gTWluaW1hbCBBMSBpcyBLKzEgLT4gQTIgPSBBMSArIEsKICAgICAgICAgICAgQVswXSA9IEsgKyAxOwogICAgICAgICAgICBBWzFdID0gQVswXSArIEs7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gQ29tcHV0ZSBkZW5vbSA9IDJee04tMX0sIGJ1dCBjYXAgdG8gSysxIHRvIGF2b2lkIG92ZXJmbG93CiAgICAgICAgICAgIGxvbmcgbG9uZyBkZW5vbSA9IDE7CiAgICAgICAgICAgIGxvbmcgbG9uZyBjYXAgPSBLICsgMTsgLy8gaWYgZGVub20gPiBLKzEgdGhlbiBkZW5vbS0xID49IEssIGdvb2QgZW5vdWdoCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTi0xOyArK2kpewogICAgICAgICAgICAgICAgaWYgKGRlbm9tID4gY2FwKSB7IGRlbm9tID0gY2FwOyBicmVhazsgfQogICAgICAgICAgICAgICAgZGVub20gPSBkZW5vbSAqIDI7CiAgICAgICAgICAgICAgICBpZiAoZGVub20gPiBjYXApIHsgZGVub20gPSBjYXA7IGJyZWFrOyB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbG9uZyBsb25nIGRlbm9tX21pbnVzMSA9IGRlbm9tIC0gMTsKICAgICAgICAgICAgaWYgKGRlbm9tX21pbnVzMSA8PSAwKSBkZW5vbV9taW51czEgPSAxOyAvLyBzYWZldHkgKHRob3VnaCBOPj0yIHNvIGRlbm9tPj0yIG5vcm1hbGx5KQoKICAgICAgICAgICAgaWYgKGRlbm9tX21pbnVzMSA+IEspIGRlbm9tX21pbnVzMSA9IEs7IC8vIGlmIGRlbm9tLTEgPiBLIHRoZW4gY2VpbChLL2Rlbm9tX21pbnVzMSk9MQoKICAgICAgICAgICAgLy8gbWluaW1hbCBBMSA9IDEgKyBjZWlsKEsgLyBkZW5vbV9taW51czEpCiAgICAgICAgICAgIGludDY0IEExID0gMSArICggKEsgKyBkZW5vbV9taW51czEgLSAxKSAvIGRlbm9tX21pbnVzMSApOwogICAgICAgICAgICBBWzBdID0gQTE7CgogICAgICAgICAgICBsb25nIGxvbmcgcmVtID0gSzsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOLTE7ICsraSl7CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2FwX3IgPSBBW2ldIC0gMTsKICAgICAgICAgICAgICAgIGlmIChjYXBfciA8IDApIGNhcF9yID0gMDsKICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0YWtlID0gbWluKHJlbSwgY2FwX3IpOwogICAgICAgICAgICAgICAgQVtpKzFdID0gQVtpXSArIHRha2U7CiAgICAgICAgICAgICAgICByZW0gLT0gdGFrZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyByZW0gc2hvdWxkIGJlIHplcm8gbm93CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSl7CiAgICAgICAgICAgIGlmIChpKSBjb3V0IDw8ICcgJzsKICAgICAgICAgICAgY291dCA8PCBBW2ldOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==