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.

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.*;
/*
 * 
 * 1 2 3 4 3 2 
 * 1 2 3 4
 * 1 2 3 4 3 2 
 * inversions = 4
 * 2 1 3 4
 * 2 1 3 4 3 1
 * inversions = 6
 * 1 2 4 3
 * 1 2 4 3 4 2
 * inversions = 4
 *
 * 1 2 3 4 3 2 1
 * inversions = 9
 *
 * 1 2 4 3
 * 1 2 4 3 4 2 1
 * inversions = 7
 *
 * 1 4 3 2
 * 1 4 3 2 3 4 1
 * inversions = 9
 */
public class Inversions{
    static BufferedWriter out=new BufferedWriter(new OutputStreamWriter(System.out));
    static FastReader in=new FastReader();
    public static void main(String[] args) throws IOException{
        int t;
        t=in.nextInt();
//		t=1;
        while(t-->0) solve();
        out.flush();
    }
    static void solve() throws IOException{
       int n=in.nextInt(), k=in.nextInt();
       if(n==k){
           for(int i=0; i<k; ++i) print(i+1);
       }
       else{
           int extra=n-k+1;
           //1 2 3
           for(int i=0; i<k-extra; ++i) print(i+1);
           int ele=k;
           while(extra!=0){
               print(ele--);
               extra--;
           }
       }
       println("");
    }
    static void println(Object o) throws IOException{
        out.write(o + "\n");
    }
    static void print(Object o) throws IOException{
        out.write(o + " ");
    }
    static class Utility{
        static int gcd(int a, int b){
            if(b==0) return a;
            return gcd(b, a%b);
        }
        static long gcd(long a, long b){
            if(b==0) return a;
            return gcd(b, a%b);
        }
        static void fastSort(int[] arr){
            ArrayList<Integer> a=new ArrayList<>();
            for(int x: arr) a.add(x);
            Collections.sort(a);
            for(int i=0; i<a.size(); ++i) arr[i]=a.get(i);
        }
        static void fastSort(long[] arr){
            ArrayList<Long> a=new ArrayList<>();
            for(long x: arr) a.add(x);
            Collections.sort(a);
            for(int i=0; i<a.size(); ++i) arr[i]=a.get(i);
        }
        static void debug(int[] arr){
            for(int i=0; i<arr.length; ++i){
                System.err.printf("[DEBUG] %d : [%d]\n", i, arr[i]);  
            }
        }
        static void debug(long[] arr){
            for(int i=0; i<arr.length; ++i){
                System.err.printf("[DEBUG] %d : [%d]\n", i, arr[i]);  
            }
        }
        static void debug(Object... args){
            for(Object o: args){
                System.err.println("[DEBUG] " + o);
            }
        }
    }
    static class FastReader{
        BufferedReader br;
        StringTokenizer st;
        public FastReader(){
            br=new BufferedReader(new InputStreamReader(System.in));
        }
        String next(){
            while(st==null||!st.hasMoreElements()){
                try{
                    st=new StringTokenizer(br.readLine());
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }
        int nextInt(){
            return Integer.parseInt(next());
        }
        long nextLong(){
            return Long.parseLong(next());
        }
        double nextDouble(){
            return Double.parseDouble(next());
        }
        String nextLine(){
            String str="";
            try{
                str=br.readLine();
            }catch(IOException e){
                e.printStackTrace();
            }
            return str;
        }
    }
}