#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--){
long long N, K;
cin >> N >> K;
vector<long long> A(N+1);
if (N == 2){
// base case
A[1] = K + 1;
A[2] = A[1] + K;
}
else if (K <= N - 2){
// 기본 증가 수열 [1, 2, 3, ..., N]
for (int i = 1; i <= N; i++) A[i] = i;
// 뒤에서부터 (N-2-K)번 0 구간을 만든다.
long long diff = (N - 2) - K;
for (int i = N; i >= 2 && diff > 0; i--){
if (A[i] > A[i-1]){
A[i] = A[i-1];
diff--;
}
}
}
else {
// K가 커서 mod합이 부족할 경우
long long base = K - (N - 2);
A[1] = base + 1;
for (int i = 2; i <= N; i++) A[i] = A[i-1] + 1;
}
for (int i = 1; i <= N; i++){
cout << A[i] << (i==N?'\n':' ');
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGludDY0ID0gbG9uZyBsb25nOwoKaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IFQ7CiAgICBjaW4gPj4gVDsKICAgIHdoaWxlIChULS0pewogICAgICAgIGxvbmcgbG9uZyBOLCBLOwogICAgICAgIGNpbiA+PiBOID4+IEs7CiAgICAgICAgdmVjdG9yPGxvbmcgbG9uZz4gQShOKzEpOwoKICAgICAgICBpZiAoTiA9PSAyKXsKICAgICAgICAgICAgLy8gYmFzZSBjYXNlCiAgICAgICAgICAgIEFbMV0gPSBLICsgMTsKICAgICAgICAgICAgQVsyXSA9IEFbMV0gKyBLOwogICAgICAgIH0gCiAgICAgICAgZWxzZSBpZiAoSyA8PSBOIC0gMil7CiAgICAgICAgICAgIC8vIOq4sOuzuCDspp3qsIAg7IiY7Je0IFsxLCAyLCAzLCAuLi4sIE5dCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE47IGkrKykgQVtpXSA9IGk7CiAgICAgICAgICAgIC8vIOuSpOyXkOyEnOu2gO2EsCAoTi0yLUsp67KIIDAg6rWs6rCE7J2EIOunjOuToOuLpC4KICAgICAgICAgICAgbG9uZyBsb25nIGRpZmYgPSAoTiAtIDIpIC0gSzsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IE47IGkgPj0gMiAmJiBkaWZmID4gMDsgaS0tKXsKICAgICAgICAgICAgICAgIGlmIChBW2ldID4gQVtpLTFdKXsKICAgICAgICAgICAgICAgICAgICBBW2ldID0gQVtpLTFdOwogICAgICAgICAgICAgICAgICAgIGRpZmYtLTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIEvqsIAg7Luk7IScIG1vZO2VqeydtCDrtoDsobHtlaAg6rK97JqwCiAgICAgICAgICAgIGxvbmcgbG9uZyBiYXNlID0gSyAtIChOIC0gMik7CiAgICAgICAgICAgIEFbMV0gPSBiYXNlICsgMTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gTjsgaSsrKSBBW2ldID0gQVtpLTFdICsgMTsKICAgICAgICB9CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE47IGkrKyl7CiAgICAgICAgICAgIGNvdXQgPDwgQVtpXSA8PCAoaT09Tj8nXG4nOicgJyk7CiAgICAgICAgfQogICAgfQp9