#include<bits/stdc++.h>
#include <stdio.h>
#define endl "\n"
#define pb push_back
#define ll long long
#define dbg cout<<"**"<<endl;
#define d1(x)  cout << #x << "--> " << x << endl
#define d2(x, y)  cout << #x << "--> " << x << " | " << #y << "--> " << y <<endl
#define d3(x, y,z)  cout << #x << "--> " << x << " | " << #y << "--> " << y <<" | " << #z << "--> "<< z<< endl
#define vpll vector<pair<ll,ll>>
#define vll vector<ll>
#define ff first
#define ss second
#define mp make_pair
#define sz size()
#define pll pair<ll,ll>
#define umap map<ll,ll>
#define print_ans cout<<ans<<endl;
#define all(x) (x).begin(), (x).end()
#define mem(name, value) memset(name, value, sizeof(name))
#define mem2(v,x) fill(all(v), x);
#define yes cout<<"YES"<<endl;
#define no cout<<"NO"<<endl;
using namespace std;
const ll mod=1e9+7;
void swap(ll *xp, ll *yp) 
{ 
    ll temp = *xp; 
    *xp = *yp; 
    *yp = temp; 
}
const ll maxn=1e5+1;
void print(vector<ll> v)
{
    ll i,j,n=v.size();
    for(i=0;i<n;i++)
    {
        cout<<v[i]<<" ";
    }
    cout<<endl;
}
void scan(vll &v,ll n)
{
    for(ll i=0;i<n;i++)
    cin>>v[i];
}
ll gcd(ll a, ll b) 
{ 
    if (b == 0) 
        return a; 
    return gcd(b, a % b);  
}
ll lcm(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}
ll power(ll x, ll y)  
{  
    ll res = 1;        
    while (y > 0)  
    {  
        if (y & 1)  
            res = (res*x)%mod;  
        y = y/2;  
        x = (x*x)%mod;
    }  
    return res%mod;  
}
// solution
ll modinv(ll x)
{
	return power(x,mod-2)%mod;	
}
//Sieve
vector<bool> prime(maxn,true);
void sieve() 
{ 
	ll n=maxn;  
	prime[0]=false;
	prime[1]=false;
    for (ll p=2; p*p<=n; p++) 
    { 
        if (prime[p] == true) 
        { 
            for (ll i=p*p; i<=n; i += p) 
                prime[i] = false; 
        } 
    } 
} 

int main() 
{
//   ios::sync_with_stdio(0);
  //  cin.tie(0);
//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);
	long long int i,j,inc,dec,t,r;
    long long int c,d,e,temp,m,p,w,k,x,y,sum,pre,temp2,mid,n,low,high,ans;
    t=1;
    n=1;
    cin>>t;  
    while(t--)
    {
    	cin>>n>>k;
        vll a(k);
        for(i=0;i<(2*k-n-1);i++)
        {
            a[i]=i+1;
            
        }
        j=k;
        for(;i<k;i++,j--)
        {
            a[i]=j;
        }
        print(a);
    }
   return 0;
}
/*
INPUT

*/

### Prompt

Please create a solution in cpp to the following problem:

You have a sequence a with n elements 1, 2, 3, ..., k - 1, k, k - 1, k - 2, ..., k - (n - k) (k ≤ n < 2k).

Let's call as inversion in a a pair of indices i < j such that a[i] > a[j].

Suppose, you have some permutation p of size k and you build a sequence b of size n in the following manner: b[i] = p[a[i]].

Your goal is to find such permutation p that the total number of inversions in b doesn't exceed the total number of inversions in a, and b is lexicographically maximum.

Small reminder: the sequence of k integers is called a permutation if it contains all integers from 1 to k exactly once.

Another small reminder: a sequence s is lexicographically smaller than another sequence t, if either s is a prefix of t, or for the first i such that s_i ≠ t_i, s_i < t_i holds (in the first position that these sequences are different, s has smaller number than t).

Input

The first line contains a single integer t (1 ≤ t ≤ 1000) — the number of test cases.

The first and only line of each test case contains two integers n and k (k ≤ n < 2k; 1 ≤ k ≤ 10^5) — the length of the sequence a and its maximum.

It's guaranteed that the total sum of k over test cases doesn't exceed 10^5.

Output

For each test case, print k integers — the permutation p which maximizes b lexicographically without increasing the total number of inversions.

It can be proven that p exists and is unique.

Example

Input


4
1 1
2 2
3 2
4 3


Output


1 
1 2 
2 1 
1 3 2 

Note

In the first test case, the sequence a = [1], there is only one permutation p = [1].

In the second test case, the sequence a = [1, 2]. There is no inversion in a, so there is only one permutation p = [1, 2] which doesn't increase the number of inversions.

In the third test case, a = [1, 2, 1] and has 1 inversion. If we use p = [2, 1], then b = [p[a[1]], p[a[2]], p[a[3]]] = [2, 1, 2] and also has 1 inversion.

In the fourth test case, a = [1, 2, 3, 2], and since p = [1, 3, 2] then b = [1, 3, 2, 3]. Both a and b have 1 inversion and b is the lexicographically maximum.

### Response

```cpp
#include<bits/stdc++.h>
#include <stdio.h>
#define endl "\n"
#define pb push_back
#define ll long long
#define dbg cout<<"**"<<endl;
#define d1(x)  cout << #x << "--> " << x << endl
#define d2(x, y)  cout << #x << "--> " << x << " | " << #y << "--> " << y <<endl
#define d3(x, y,z)  cout << #x << "--> " << x << " | " << #y << "--> " << y <<" | " << #z << "--> "<< z<< endl
#define vpll vector<pair<ll,ll>>
#define vll vector<ll>
#define ff first
#define ss second
#define mp make_pair
#define sz size()
#define pll pair<ll,ll>
#define umap map<ll,ll>
#define print_ans cout<<ans<<endl;
#define all(x) (x).begin(), (x).end()
#define mem(name, value) memset(name, value, sizeof(name))
#define mem2(v,x) fill(all(v), x);
#define yes cout<<"YES"<<endl;
#define no cout<<"NO"<<endl;
using namespace std;
const ll mod=1e9+7;
void swap(ll *xp, ll *yp) 
{ 
    ll temp = *xp; 
    *xp = *yp; 
    *yp = temp; 
}
const ll maxn=1e5+1;
void print(vector<ll> v)
{
    ll i,j,n=v.size();
    for(i=0;i<n;i++)
    {
        cout<<v[i]<<" ";
    }
    cout<<endl;
}
void scan(vll &v,ll n)
{
    for(ll i=0;i<n;i++)
    cin>>v[i];
}
ll gcd(ll a, ll b) 
{ 
    if (b == 0) 
        return a; 
    return gcd(b, a % b);  
}
ll lcm(ll a,ll b)
{
    return (a*b)/gcd(a,b);
}
ll power(ll x, ll y)  
{  
    ll res = 1;        
    while (y > 0)  
    {  
        if (y & 1)  
            res = (res*x)%mod;  
        y = y/2;  
        x = (x*x)%mod;
    }  
    return res%mod;  
}
// solution
ll modinv(ll x)
{
	return power(x,mod-2)%mod;	
}
//Sieve
vector<bool> prime(maxn,true);
void sieve() 
{ 
	ll n=maxn;  
	prime[0]=false;
	prime[1]=false;
    for (ll p=2; p*p<=n; p++) 
    { 
        if (prime[p] == true) 
        { 
            for (ll i=p*p; i<=n; i += p) 
                prime[i] = false; 
        } 
    } 
} 

int main() 
{
//   ios::sync_with_stdio(0);
  //  cin.tie(0);
//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);
	long long int i,j,inc,dec,t,r;
    long long int c,d,e,temp,m,p,w,k,x,y,sum,pre,temp2,mid,n,low,high,ans;
    t=1;
    n=1;
    cin>>t;  
    while(t--)
    {
    	cin>>n>>k;
        vll a(k);
        for(i=0;i<(2*k-n-1);i++)
        {
            a[i]=i+1;
            
        }
        j=k;
        for(;i<k;i++,j--)
        {
            a[i]=j;
        }
        print(a);
    }
   return 0;
}
/*
INPUT

*/

```