description: You are given three integers n, a, b. Determine if there exists a permutation p_1, p_2, …, p_n of integers from 1 to n, such that:
  
    * There are exactly a integers i with 2 ≤ i ≤ n-1 such that p_{i-1} < p_i > p_{i+1} (in other words, there are exactly a local maximums).
  
    * There are exactly b integers i with 2 ≤ i ≤ n-1 such that p_{i-1} > p_i < p_{i+1} (in other words, there are exactly b local minimums).
  
  
  
  
  If such permutations exist, find any such permutation.
  
  Input
  
  The first line of the input contains a single integer t (1 ≤ t ≤ 10^4) — the number of test cases. The description of test cases follows.
  
  The only line of each test case contains three integers n, a and b (2 ≤ n ≤ 10^5, 0 ≤ a,b ≤ n).
  
  The sum of n over all test cases doesn't exceed 10^5.
  
  Output
  
  For each test case, if there is no permutation with the requested properties, output -1.
  
  Otherwise, print the permutation that you are found. If there are several such permutations, you may print any of them.
  
  Example
  
  Input
  
  
  3
  4 1 1
  6 1 2
  6 4 0
  
  
  Output
  
  
  1 3 2 4
  4 2 3 1 5 6
  -1
  
  Note
  
  In the first test case, one example of such permutations is [1, 3, 2, 4]. In it p_1 < p_2 > p_3, and 2 is the only such index, and p_2> p_3 < p_4, and 3 the only such index.
  
  One can show that there is no such permutation for the third test case.
solution: //import java.lang.reflect.Array;
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.Collection;
  import java.util.Collections;
  import java.util.Deque;
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.LinkedList;
  import java.util.PriorityQueue;
  import java.util.Scanner;
  import java.util.Set;
  
  import javax.print.DocFlavor.STRING;
  
  public class Simple{  
  
      public static Deque<Integer> possible(int a[],int n){
          boolean bool = true;
          Deque<Integer> deq = new LinkedList<>();
          int i=0;
          int j=n-1;
          int max = n;
          int min = 1;
          while(i<=j){
              
              
              if(a[i]== min){
                  deq.addFirst(a[i]);
                  i++;min++;
                  continue;
              }
              if(a[j]== min){
                  deq.addLast(a[j]);
                  j--;
                  min++;
                  continue;
              }
              if(a[i]==max){
                  deq.addFirst(a[i]);
                  i++;
                  max--;
                  continue;
              }
              if(a[j]==max){
                  deq.addLast(a[j]);
                  j--;
                  max--;
                  continue;
              }
              Deque<Integer> d = new LinkedList<>();
              d.add(-1);
              return d;
  
          }
  
          
          return deq;
  
      }
  
      public static class Pair implements Comparable<Pair>{
          int val;
          int freq = 0;
  
          public Pair(int val,int freq){
              this.val = val;
              this.freq= freq;
          }
  
          public int compareTo(Pair p){
              if(p.freq == this.freq)return 0;
              if(this.freq > p.freq)return -1;
              return 1;
          }
  
  
      }
      public static long factorial(long n)
      {
      
        // single line to find factorial
        return (n == 1 || n == 0) ? 1 : n * factorial(n - 1);
      
      }
  
  
      static long m  = 998244353;
   
  // Function to return the GCD of given numbers
   static long gcd(long a, long b)
  {
      if (a == 0)
          return b;
      return gcd(b % a, a);
  }
   
  // Recursive function to return (x ^ n) % m
  static long modexp(long x, long n)
  {
      if (n == 0) {
          return 1;
      }
      else if (n % 2 == 0) {
          return modexp((x * x) % m, n / 2);
      }
      else {
          return (x * modexp((x * x) % m, (n - 1) / 2) % m);
      }
  }
   
  // Function to return the fraction modulo mod
   static long getFractionModulo(long a, long b)
  {
      long c = gcd(a, b);
   
      a = a / c;
      b = b / c;
   
      // (b ^ m-2) % m
      long  d = modexp(b, m - 2);
   
      // Final answer
      long ans = ((a % m) * (d % m)) % m;
   
      return ans;
  }
      // public static long bs(long lo,long hi,long fact,long num){
      //     long help = num/fact;
      //     long ans = hi;
      //     while(lo<=hi){
      //         long mid = (lo+hi)/2;
  
      //         if(mid/)
      //     }
      // }
      public static boolean isPrime(int n)
      {
   
          // Check if number is less than
          // equal to 1
          if (n <= 1)
              return false;
   
          // Check if number is 2
          else if (n == 2)
              return true;
   
          // Check if n is a multiple of 2
          else if (n % 2 == 0)
              return false;
   
          // If not, then just check the odds
          for (int i = 3; i <= Math.sqrt(n); i += 2)
          {
              if (n % i == 0)
                  return false;
          }
          return true;
      }
      public static int countDigit(long n)
      {
          int count = 0;
          while (n != 0) {
              n = n / 10;
              ++count;
          }
          return count;
      }
      public static void main(String args[]){  
          //System.out.println("Hello Java");
          Scanner s = new Scanner(System.in);
          int t = s.nextInt();
          for(int t1 = 1;t1<=t;t1++){
              int n = s.nextInt();
              int a = s.nextInt();
              int b = s.nextInt();
  
              int lo = 1;
              int hi = n;
              //int count =0;
  
              if(a+b>n-2 || Math.abs(a-b)>1){
                  System.out.println(-1);
                  continue;
              }
              if(a==b && b==0){
                  for(int i=1;i<=n;i++){
                      System.out.print(i+" ");
                  }
                  System.out.println();
              }
              else if(a==b){
                  boolean help = true;
                  int counter=0;
                  while(a!=0){
                      if(help){
                          System.out.print(lo+" ");
                          lo++;
                      }
                      else{
                          System.out.print(hi+" ");
                          hi--;
                          a--;
                      }
                      counter++;
                      help=!help;
                      //System.out.println();
                      
                  }
                  while(counter!=n){
                      counter++;
                      System.out.print(lo+" ");
                      lo++;
                  }
                  System.out.println();
              }
              else if(a>=b){
                  boolean help = true;
                  int counter=0;
                  while(a!=0){
                      if(help){
                          System.out.print(lo+" ");
                          lo++;
                      }
                      else{
                          System.out.print(hi+" ");
                          hi--;
                          a--;
                      }
                      counter++;
                      help=!help;
                      
                  }
                  while(counter!=n){
                      counter++;
                      System.out.print(hi+" ");
                      hi--;
                  }
                  System.out.println();
                  
              }
              else{
                  boolean help = true;
                  int counter=0;
                  while(b!=0){
                      if(help){
                          System.out.print(hi+" ");
                          hi--;
                      }
                      else{
                          System.out.print(lo+" ");
                          lo++;
                          b--;
                      }
                      counter++;
                      help=!help;
                      
                  }
                  while(counter!=n){
                      counter++;
                      System.out.print(lo+" ");
                      lo++;
                  }
                  System.out.println();
                  
              
              }
              
              
          }
              
      }
      //5
      // 2 4 6 8 10  
      
  
      
  
      
      
  }  
  
  /*abstractSys
  
  1 3 5 7 9
  1 2 3 4 5
  5 6 7 8 9
  
  
  
  
   
  
  
  
  
  
  */