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.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.*; 
import java.util.StringTokenizer; 
 
public class Main   //JAVA FORMAT
{
 final static int n=1000000;
 static boolean b[]=new boolean[n+2];
 static  FastReader sc=new FastReader();
    public static void main(String[] args) 
    { 
       
 solve();
    }
    public static void solve()
    {
int t=i();
while(t-->0)
{
    int n=i();
    int k=i();
    int a[]=new int[n+1];
    int num=n;
   for(int i=2;i<n;i+=2)
   {
       if(k==0) break;
       a[i]=num--;
       k--;
   }
   num=1;
   for(int i=1;i<=n;i++)
   {
       if(a[i]==0) a[i]=num++;
   }
    if(k!=0) System.out.print(-1);
    else for(int i=1;i<=n;i++) System.out.print(a[i]+" ");
    System.out.println();
}
     
        }
        
    
  
  /*  public static int diglen(Long y)
    {int a=0;
        while(y!=0L)
        {
         y/=10;
         a++;
          
        }
        return a;
    }
     public static boolean ispalchar(char c[],int n)
     {
         for(int i=0;i<n;i++)
         {
             if((c[i]!=c[n-i-1]) || c[i]=='?') return false;
         }
         return true;
     }*/
       
    
        public static int i()
        {
            int s=sc.nextInt();
            return s;
        }
        public static Long l()
        {
            Long k=sc.nextLong();
            return k;
        }
  
        public static int gcd(int a,int b)
        {  
            if(a==0) return b;
            if(b==0) return a;
            if(a>b)
            return gcd(b,a%b);
            return gcd(b%a,a);
        }
        
      public static int [] input(int n)
      {
          int a[]=new int[n];
          for(int i=0;i<n;i++) a[i]=sc.nextInt();
          return a;
      }
        public static Long [] inpuut(int n)
      {
          Long a[]=new Long[n];
          for(int i=0;i<n;i++) a[i]=sc.nextLong();
          return a;
      }
      public static  int sum(int a[],int n){
          int s=0;
      for(int i=0;i<n;i++) s+=a[i];
      return s;
      }
       public static  Long suml(Long a[],int n){
          Long s=0L;
      for(int i=0;i<n;i++) s+=a[i];
      return s;
      }
        public static void sieve()
        {
            b[0]=true; b[1]=true;
            for(int i=2;i*i<=n;i++)
            {
                if(!b[i])
                for(int j=i*i;j<=n;j+=i)
                {
                    b[i]=true;
                }
            }
        }
          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; 
        } 
    } 
 
            
              
    }