#include <bits/stdc++.h>
using namespace std;
///#define int long long
#define ll long long
#define ln '\n'
#define u unsigned
#define f first
#define ss second
ll logg(ll base ,ll x){
ll s=0;
if(!x)return 1;
while(x){
x/=base;
s++;
}
return s;
}
const ll N=1000000007;
const ll mod=998244353;
ll fastPow(ll x,ll y,ll mode){
if(y==0)
return 1;
//
if(y%2==1){
ll b=x%mode;
ll ans=fastPow(b,y/2,mode)%mode;
ans=(ans*ans)%mode;
return (ans*b)%mode;
}
else{
ll b=x%mode;
ll ans=fastPow(b,y/2,mode)%mode;
ans=(ans*ans)%mode;
return ans;
}
}
ll power(ll x, ll y,ll mode)
{
ll res = 1;
x = x % mode;
while (y > 0) {
if (y & 1)
res = (res * x) % mode;
y = y >> 1;
x = (x * x) % mode;
}
return res;
}
u ll GCD(u ll a, u ll b)
{
return b == 0 ? a : GCD(b, a % b);
}
u ll lcm(u ll x,u ll y){
return (ll)(((x/(ll)__gcd(x,y)))*y);
}
ll ceiling (ll x,ll y){
if(x%y)return x/y +1;
return x/y;
}
bool sortby(const pair<ll,ll>&a,const pair<ll,ll>&b){
if(a.first==b.first)
return a.second>b.second;
return a.first<b.first;
}
////////////////////////////////////////
ll fact[10001],invfact[10001];
ll invMod(ll x,ll mode){
return fastPow(x,mode-2,mode)%mode;
}
void factorial(ll mode){
ll ff=1;
fact[0]=1;invfact[0]=1;
for(ll i=1;i<=1000;i++){
ff*=i;ff%=mode;
fact[i]=ff;
invfact[i] = invMod(fact[i],mode);
}
}
ll ncr(ll n,ll r,ll mode){
return ( (fact[n]* invfact[r])%mode* invfact[n-r])%mode;
}
///////////////////////////////////////////////
bool isPrime(ll n){
if(n == 1){
return false;
}
for(ll i = 2; i*i<=n; i++){
if(n%i == 0){
return false;
}
}
return true;
}
int on_bits(long long n){ return __builtin_popcountll(n);}
//////////////////////////////////////////////////
void Update(vector<ll>&B,int idx,ll val){
while(idx<B.size()){
B[idx]+=val;
idx+=(idx&-idx);
}
}
ll get_sum(vector<ll>&B,int l,int r){
ll s1=0,s2=0;l=max(l-1,0);
while(l){
s1+=B[l];
l-=(l&-l);
}
while(r){
s2+=B[r];
r-=(r&-r);
}
return s2-s1;
}
//////////////////////////////////////////
bool valid(int x,int uu){
if(x>=0 && x<uu)return 1;
return 0;
}
ll pow2[200];
void power2(){
ll p=1;
pow2[0]=1;
for(int i=1;i<=200000;i++){
p*=2;p%=N;
pow2[i]=p;
}
}
ll sum_(ll l,ll r){
return (r*(r+1))/2-(l*(l+1))/2;
}
bool is_pal(string s){
string s2=s;
reverse(s2.begin(), s2.end());
return s==s2;
}
///MiraculousN
void change(int &x,int& y){
if(x==-1 && y==1)y=-1;
else if(x==-1 && y==-1)x=1;
else if(x==1 && y==-1)y=1;
else x=-1;
}
void solve(){
int n,k;cin>>n>>k;
vector<int>v(n+1,0);
set<int>st;
for(int i=1;i<=n;i++){
st.insert(i);
}
for(int i=1;i<=n;i++){
int curr=*st.begin(),idx=i;
if(v[idx]!=0)break;
while(idx<=n){
v[idx]=curr;
st.erase(curr);
curr++;
idx+=k;
}
}
for(int i=1;i<=n;i++)cout<<v[i]<<' ';
cout<<ln;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int T=1;cin>>T;
/// map_pow();
//power2();
//factorial(N);
while(T--){
solve();
}
return 0;
}
/*
4
1 2 3 4
6
3 5 6 7 1 2
10
7 10 1 2 1 7 1 5 9 9
9
6 2 5 6 7 7 5 5 2
2
6 10
3
6 3 3
*/
CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovLy8jZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsbiAnXG4nCiNkZWZpbmUgdSB1bnNpZ25lZAojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKCmxsIGxvZ2cobGwgYmFzZSAsbGwgeCl7CiAgICBsbCBzPTA7CiAgICBpZigheClyZXR1cm4gMTsKICAgIHdoaWxlKHgpewogICAgICAgIHgvPWJhc2U7CiAgICAgICAgcysrOwogICAgfQogICAgcmV0dXJuICBzOwp9CmNvbnN0IGxsIE49MTAwMDAwMDAwNzsKY29uc3QgIGxsIG1vZD05OTgyNDQzNTM7CgpsbCBmYXN0UG93KGxsIHgsbGwgeSxsbCBtb2RlKXsKICAgIGlmKHk9PTApCiAgICAgICAgcmV0dXJuIDE7CiAgICAvLwoKICAgIGlmKHklMj09MSl7CiAgICAgICAgbGwgYj14JW1vZGU7CiAgICAgICAgbGwgYW5zPWZhc3RQb3coYix5LzIsbW9kZSklbW9kZTsKICAgICAgICBhbnM9KGFucyphbnMpJW1vZGU7CiAgICAgICAgcmV0dXJuIChhbnMqYiklbW9kZTsKICAgIH0KCiAgICBlbHNlewogICAgICAgIGxsIGI9eCVtb2RlOwogICAgICAgIGxsIGFucz1mYXN0UG93KGIseS8yLG1vZGUpJW1vZGU7CiAgICAgICAgYW5zPShhbnMqYW5zKSVtb2RlOwogICAgICAgIHJldHVybiBhbnM7CiAgICB9Cgp9CgpsbCBwb3dlcihsbCB4LCBsbCB5LGxsIG1vZGUpCnsKICAgIGxsIHJlcyA9IDE7CiAgICB4ID0geCAlIG1vZGU7CgogICAgd2hpbGUgKHkgPiAwKSB7CiAgICAgICAgaWYgKHkgJiAxKQogICAgICAgICAgICByZXMgPSAocmVzICogeCkgJSBtb2RlOwogICAgICAgIHkgPSB5ID4+IDE7CiAgICAgICAgeCA9ICh4ICogeCkgJSBtb2RlOwogICAgfQoKICAgIHJldHVybiByZXM7Cn0KdSBsbCBHQ0QodSBsbCBhLCB1IGxsIGIpCnsKICAgIHJldHVybiBiID09IDAgPyBhIDogR0NEKGIsIGEgJSBiKTsKfQp1IGxsIGxjbSh1IGxsIHgsdSBsbCB5KXsKICAgIHJldHVybiAobGwpKCgoeC8obGwpX19nY2QoeCx5KSkpKnkpOwp9CmxsIGNlaWxpbmcgKGxsIHgsbGwgeSl7CiAgICBpZih4JXkpcmV0dXJuIHgveSArMTsKICAgIHJldHVybiB4L3k7Cn0KYm9vbCBzb3J0YnkoY29uc3QgcGFpcjxsbCxsbD4mYSxjb25zdCBwYWlyPGxsLGxsPiZiKXsKICAgIGlmKGEuZmlyc3Q9PWIuZmlyc3QpCiAgICAgICAgcmV0dXJuIGEuc2Vjb25kPmIuc2Vjb25kOwogICAgcmV0dXJuIGEuZmlyc3Q8Yi5maXJzdDsKfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmxsIGZhY3RbMTAwMDFdLGludmZhY3RbMTAwMDFdOwpsbCBpbnZNb2QobGwgeCxsbCBtb2RlKXsKICAgIHJldHVybiBmYXN0UG93KHgsbW9kZS0yLG1vZGUpJW1vZGU7Cn0Kdm9pZCBmYWN0b3JpYWwobGwgbW9kZSl7CiAgICBsbCBmZj0xOwogICAgZmFjdFswXT0xO2ludmZhY3RbMF09MTsKICAgIGZvcihsbCBpPTE7aTw9MTAwMDtpKyspewogICAgICAgIGZmKj1pO2ZmJT1tb2RlOwogICAgICAgIGZhY3RbaV09ZmY7CiAgICAgICAgaW52ZmFjdFtpXSA9IGludk1vZChmYWN0W2ldLG1vZGUpOwogICAgfQp9CgoKbGwgbmNyKGxsIG4sbGwgcixsbCBtb2RlKXsKICAgIHJldHVybiAoIChmYWN0W25dKiBpbnZmYWN0W3JdKSVtb2RlKiBpbnZmYWN0W24tcl0pJW1vZGU7Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KYm9vbCBpc1ByaW1lKGxsIG4pewogICAgaWYobiA9PSAxKXsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBmb3IobGwgaSA9IDI7IGkqaTw9bjsgaSsrKXsKICAgICAgICBpZihuJWkgPT0gMCl7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIHRydWU7Cn0KCmludCBvbl9iaXRzKGxvbmcgbG9uZyBuKXsgcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudGxsKG4pO30KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8Kdm9pZCBVcGRhdGUodmVjdG9yPGxsPiZCLGludCBpZHgsbGwgdmFsKXsKICAgIHdoaWxlKGlkeDxCLnNpemUoKSl7CiAgICAgICAgQltpZHhdKz12YWw7CiAgICAgICAgaWR4Kz0oaWR4Ji1pZHgpOwogICAgfQp9CmxsIGdldF9zdW0odmVjdG9yPGxsPiZCLGludCBsLGludCByKXsKICAgIGxsIHMxPTAsczI9MDtsPW1heChsLTEsMCk7CiAgICB3aGlsZShsKXsKICAgICAgICBzMSs9QltsXTsKICAgICAgICBsLT0obCYtbCk7CiAgICB9CiAgICB3aGlsZShyKXsKICAgICAgICBzMis9QltyXTsKICAgICAgICByLT0ociYtcik7CiAgICB9CiAgICByZXR1cm4gczItczE7Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpib29sIHZhbGlkKGludCB4LGludCB1dSl7CiAgICBpZih4Pj0wICYmIHg8dXUpcmV0dXJuIDE7CiAgICByZXR1cm4gMDsKfQpsbCBwb3cyWzIwMF07CnZvaWQgcG93ZXIyKCl7CiAgICBsbCBwPTE7CiAgICBwb3cyWzBdPTE7CiAgICBmb3IoaW50IGk9MTtpPD0yMDAwMDA7aSsrKXsKICAgICAgICBwKj0yO3AlPU47CiAgICAgICAgcG93MltpXT1wOwogICAgfQp9CmxsIHN1bV8obGwgbCxsbCByKXsKICAgIHJldHVybiAocioocisxKSkvMi0obCoobCsxKSkvMjsKfQpib29sIGlzX3BhbChzdHJpbmcgcyl7CiAgICBzdHJpbmcgczI9czsKICAgIHJldmVyc2UoczIuYmVnaW4oKSwgczIuZW5kKCkpOwogICAgcmV0dXJuIHM9PXMyOwp9Ci8vL01pcmFjdWxvdXNOCnZvaWQgY2hhbmdlKGludCAmeCxpbnQmIHkpewogICAgaWYoeD09LTEgJiYgeT09MSl5PS0xOwogICAgZWxzZSBpZih4PT0tMSAmJiB5PT0tMSl4PTE7CiAgICBlbHNlIGlmKHg9PTEgJiYgeT09LTEpeT0xOwogICAgZWxzZSB4PS0xOwp9Cgp2b2lkIHNvbHZlKCl7CiAgICBpbnQgbixrO2Npbj4+bj4+azsKICAgIHZlY3RvcjxpbnQ+dihuKzEsMCk7CiAgICBzZXQ8aW50PnN0OwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIHN0Lmluc2VydChpKTsKICAgIH0KICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBpbnQgY3Vycj0qc3QuYmVnaW4oKSxpZHg9aTsKICAgICAgICBpZih2W2lkeF0hPTApYnJlYWs7CiAgICAgICAgd2hpbGUoaWR4PD1uKXsKICAgICAgICAgICAgdltpZHhdPWN1cnI7CiAgICAgICAgICAgIHN0LmVyYXNlKGN1cnIpOwogICAgICAgICAgICBjdXJyKys7CiAgICAgICAgICAgIGlkeCs9azsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyljb3V0PDx2W2ldPDwnICc7CiAgICBjb3V0PDxsbjsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKICAgIGludCBUPTE7Y2luPj5UOwogICAvLy8gbWFwX3BvdygpOwogICAgLy9wb3dlcjIoKTsKICAgIC8vZmFjdG9yaWFsKE4pOwogICAgd2hpbGUoVC0tKXsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0KCi8qCjQKMSAyIDMgNAo2CjMgNSA2IDcgMSAyCgoxMAo3IDEwIDEgMiAxIDcgMSA1IDkgOQo5CjYgMiA1IDYgNyA3IDUgNSAyCgoyCjYgMTAKMwo2IDMgMwoKICov