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.math.*;
  import java.net.Inet4Address;
  import  java.util.*;
  public class sampleEditor_codeforces {
      static   int  mod=1000000007;
      static  int mod2=1000003;
      static  Scanner sc = new Scanner(System.in);
  
      static class Pair implements Comparable<Pair>{
          int x;
          int y;
  
          public Pair(int px , int py){
              x = px;
              y = py;
          }
  
          @Override
          public int compareTo(Pair pair){
              if (x > pair.x)
                  return 1;
              else if (x == pair.x)
                  return 0;
              else
                  return -1;
          }
  
      }
  
  
      public static void loop(int [] a,int l,int r){
          for(int i=l;i<r;i++){
              a[i]=sc.nextInt();
          }
      }
      public static long binaryToDecimal(String binary){
          int n=binary.length();
          int i=n-1;
          long sum=0;
          long two=1;
          while(i>=0){
              sum+=two*(binary.charAt(i)-'0')%mod2;
              two*=2;
              i--;
          }
          return sum;
      }
  
  
      public static boolean isSorted(int[] arr) {
          int n = arr.length;
          for (int i = 0; i < n - 1; i++) {
              if (arr[i] > arr[i + 1]) {
                  return false;
              }
          }
  
          return true;
      }
  
      public static void reverse(int[] arr) {
          int l = 0;
          int r = arr.length - 1;
          while (l < r) {
              int temp = arr[l];
              arr[l] = arr[r];
              arr[r] = temp;
              l++;
              r--;
          }
      }
  
      public static void reverse(int[] arr,int l,int r) {
  
          while (l < r) {
              int temp = arr[l];
              arr[l] = arr[r];
              arr[r] = temp;
              l++;
              r--;
          }
      }
      public  static  boolean isPalindrome(int n,int [] a,int x1){
          int [] b=new int[n];
          int m=0;
          for(int i=0;i<n;i++){
              if(a[i]!=x1){
                  b[m++]=a[i];
              }
          }
          for(int i=0;i<m;i++){
              if(b[i]!=b[m-1-i]){
                  return false;
              }
          }
          return true;
  
  
      }
  
      public static void solve(int n,int a,int b) {
          StringBuilder sb=new StringBuilder("");
          int l=1;
          int r=n;
          if(Math.abs(a-b)>1 || (a+b)>n-2) System.out.println(-1);
          else{
              if(a>b){
                  for(int i=0;i<a;i++){
                      sb.append(l++).append(" ").append(r--).append(" ");
                  }
                  for(int i=r;i>=l;i--){
                      sb.append(i).append(" ");
                  }
                  sb.append("\n");
                  System.out.print(sb);
              }
              else if(a<b){
                  for(int i=0;i<b;i++){
                      sb.append(r--).append(" ").append(l++).append(" ");
                  }
                  for(int i=l;i<=r;i++){
                      sb.append(i).append(" ");
                  }
                  sb.append("\n");
                  System.out.print(sb);
              }
              else{
                  for(int i=0;i<a;i++){
                      sb.append(r--).append(" ").append(l++).append(" ");
                  }
                  for(int i=r;i>=l;i--){
                      sb.append(i).append(" ");
                  }
                  sb.append("\n");
                  System.out.print(sb);
              }
  
  
          }
  
  
  
      }
  
  
      public static void main(String args[]) {
  //        Scanner sc = new Scanner(System.in);
          int smallestNum=10000;
          int t = sc.nextInt();
          while (t-- > 0) {
             int n=sc.nextInt();
             int a=sc.nextInt();
             int b=sc.nextInt();
              solve(n,a,b);
          }
      }
  
  
  }