Problem: A sequence of n integers is called a permutation if it contains all integers from 1 to n exactly once.

Given two integers n and k, construct a permutation a of numbers from 1 to n which has exactly k peaks. An index i of an array a of size n is said to be a peak if 1 < i < n and a_i \gt a_{i-1} and a_i \gt a_{i+1}. If such permutation is not possible, then print -1.

Input

The first line contains an integer t (1 ≤ t ≤ 100) — the number of test cases.

Then t lines follow, each containing two space-separated integers n (1 ≤ n ≤ 100) and k (0 ≤ k ≤ n) — the length of an array and the required number of peaks.

Output

Output t lines. For each test case, if there is no permutation with given length and number of peaks, then print -1. Otherwise print a line containing n space-separated integers which forms a permutation of numbers from 1 to n and contains exactly k peaks. 

If there are multiple answers, print any.

Example

Input


5
1 0
5 2
6 6
2 1
6 1


Output


1 
2 4 1 5 3 
-1
-1
1 3 6 5 4 2

Note

In the second test case of the example, we have array a = [2,4,1,5,3]. Here, indices i=2 and i=4 are the peaks of the array. This is because (a_{2} \gt a_{1} , a_{2} \gt a_{3}) and (a_{4} \gt a_{3}, a_{4} \gt a_{5}). 

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.*;
public class Asd {
static PrintWriter w=new PrintWriter(System.out);
static FastScanner s=new FastScanner();

	public static void main(String[] args) {
		
		int t=s.nextInt();
             //int t=1;
		while(t-->0)
                {
		    solve();
		}
	       w.close();
        }
        /* Function to print all the permutations of the string
        static String swap(String str, int i, int j)
        {
        char ch;
        char[] array = str.toCharArray();
        ch = array[i];
        array[i] = array[j];
        array[j] = ch;
        return String.valueOf(array);
       }
    
      static void permute(String str,int low,int high)
    {
        if(low == high)
            list.add(Long.parseLong(str));
 
        int i;
        for(i = low; i<=high; i++){
            str = swap(str,low,i);
            permute(str, low+1,high);
            str = swap(str,low,i);
        }
    }
        use  permute(str2,0,str2.length()-1); to perform combinations
        */
           public static void solve()
        {
          int n=s.nextInt();
          int k=s.nextInt();
          if(n%2==0)
          {
              if((n/2)-1>=k){}
              else{
                  w.println(-1);return;}
          }
          else {
               if((n/2)>=k){}
              else{
                  w.println(-1);return;}
          }
          w.print("1 ");k=k+k;
          for(int i=02;i<=n;i++)
          {
              if(k>0)
              {
                  if(i%2==0)
                      w.print(i+1+" ");
                  else
                      w.print(i-1+" ");
                  k--;
              }
              else
                  w.print(i+" ");
          }
          w.println();
        }          
    static long gcd(long a, long b)
    {
      if (b == 0)
        return a;
      return gcd(b, a % b); 
    }
        static int noofdivisors(int n)
        {
            //it counts no of divisors of every number upto number n
            
            int arr[]=new int[n+1];
              for(int i=1;i<=(n);i++)
			for(int j=i;j<=(n);j=j+i)
				arr[j]++;
             return arr[0];
        }
           
        
       
        static char[] reverse(char arr[])
        {
            char[] b = new char[arr.length]; 
        int j = arr.length; 
        for (int i = 0; i < arr.length; i++) { 
            b[j - 1] = arr[i]; 
            j = j - 1; 
        }
        return b;
        }
        
        
	static long factorial(int n)
        {
            long su=1;
            for(int i=1;i<=n;i++)
                su*=(long)i;
            return su;
        }
	static class FastScanner {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st=new StringTokenizer("");
		public String next() {
			while (!st.hasMoreElements())
				try {
					st=new StringTokenizer(br.readLine());
				} catch (IOException e) {
					e.printStackTrace();
				}
			return st.nextToken();
		}
		long[] readArray(int n) {
			long[] a=new long[n]; 
			for (int i=0; i<n; i++) a[i]=nextLong();
			return a;
		}
		
		int nextInt () {
			return Integer.parseInt(next());
		}
                long nextLong () {
			return Long.parseLong(next());
		}
                double nextDouble () {
			return Double.parseDouble(next());
		}
	}

}