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.io.*;
  import java.util.*;
  
  public class CSESProblemSets {
      public static void main (String[] args) {
          int T = in.nextInt();
          for(int testCase = 0; testCase < T; testCase ++){
              solve();
              out.flush();
          }
  
          out.close();
      }
      static void solve(){
         int N = in.nextInt(), a = in.nextInt(), b = in.nextInt();
         if(Math.abs(a - b) > 1 || (a + b) > N - 2) {
             out.println(-1);
             return;
         }
         int left = 1, right = N, back = 0;
         StringBuilder x = new StringBuilder();
          if(a==b){
              int h = 0 ;
              x.append(left++ + " ");
              while (h<a){
                  x.append(right-- + " ");
                  x.append(left++ + " ");
                  h++;
              }
              for(int i=left; i <= right ;i++)
                  x.append(i + " ");
          }
          else if(a>b){
              int h = 0 ;
              x.append(left++ + " ");
              while (h<a-1){
                  x.append(right-- + " ");
                  x.append(left++ + " ");
                  h++;
              }
              for(int i=right; i >= left ;i--)
                  x.append(i + " ");
          }
          else{
              int h = 0 ;
              x.append(right + " ");
              right--;
              while (h<b-1){
                  x.append(left + " ");
                  left++;
                  x.append(right + " ");
                  right--;
                  h++;
              }
              for(int i=left; i <=right ;i++)
                  x.append(i).append(" ");
          }
  
         out.println(x);
      }
  
      static class Kattio extends PrintWriter {
          private BufferedReader r;
          private StringTokenizer st;
  
          // standard input
          public Kattio() {
              this(System.in, System.out);
          }
  
          public Kattio(InputStream i, OutputStream o) {
              super(o);
              r = new BufferedReader(new InputStreamReader(i));
          }
  
          // USACO-style file input
          public Kattio(String problemName) throws IOException {
              super(new FileWriter(problemName + ".out"));
              r = new BufferedReader(new FileReader(problemName + ".in"));
          }
  
          // returns null if no more input
          public String next() {
              try {
                  while (st == null || !st.hasMoreTokens())
                      st = new StringTokenizer(r.readLine());
                  return st.nextToken();
              } catch (Exception e) {
              }
              return null;
          }
  
          public int nextInt() {
              return Integer.parseInt(next());
          }
  
          public double nextDouble() {
              return Double.parseDouble(next());
          }
  
          public long nextLong() {
              return Long.parseLong(next());
          }
  
          public String readLine() throws Exception {
              return r.readLine();
          }
  
          public long[] readArrayLong(int n) {
              long[] arr = new long[n];
              for (int i = 0; i < n; i++)
                  arr[i] = nextLong();
              return arr;
          }
  
          public Integer[] readArrayI(int n) {
              Integer[] arr = new Integer[n];
              for (int i = 0; i < n; i++)
                  arr[i] = nextInt();
              return arr;
          }
  
          public int[] readArray(int n) {
              int[] arr = new int[n];
              for (int i = 0; i < n; i++)
                  arr[i] = nextInt();
              return arr;
          }
  
          public int[]prefixSum(int N, int[]a){
              int[]nw = new int[N + 1];
              nw[0] = 0;
              for (int i = 0; i < N; i ++) {
                  nw[i + 1] = nw[i] + a[i];
              }
  
              return nw;
          }
  
          public int[][] prefixSum(int N, int[][]grid){
              int[][]pfx = new int[grid.length][grid.length];
              for (int i = 1; i < N + 1; i++) {
                  for (int j = 1; j < N + 1; j++) {
                      pfx[i][j] = grid[i][j]
                              + pfx[i-1][j]
                              + pfx[i][j-1]
                              - pfx[i-1][j-1];
                  }
              }
  
              return pfx;
          }
  
          public int prefixSum2D(int x1, int y1, int x2, int y2, int[][]pfx) {
              return pfx[x2][y2] - pfx[x1-1][y2] - pfx[x2][y1-1] + pfx[x1-1][y1-1];
          }
      }
      static final Kattio in = new Kattio();
      static final PrintWriter out = new PrintWriter(System.out);
      static class Pair implements Comparable<Pair> {
          int x, y;
  
          Pair (int x, int y) {
              this.x = x;
              this.y = y;
          }
  
          @Override
          public int compareTo (Pair other) {
              return Integer.compare(this.x, other.x);
          }
          public String toString() { return x + " " + y;}
      }
  }