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 sys
  def get_ints(): return map(int, sys.stdin.readline().strip().split())
  def get_list(): return list(map(int, sys.stdin.readline().strip().split()))
  def get_string(): return sys.stdin.readline().strip()
  def get_int(): return int(sys.stdin.readline().strip())
  def get_list_strings(): return list(map(str, sys.stdin.readline().strip().split()))
  
  
  # Output for list
  # sys.stdout.write(" ".join(map(str, final)) + "\n")
  
  # Output for int or str
  # sys.stdout.write(str(best) + "\n")
  
  
  
  def solve():
    n, a, b = get_ints()
  
    if a == 0 and b == 0:
      final = [i for i in range(1, n+1)]
  
      print(*final)
      return
    
    if abs(a-b) >= 2:
      print(-1)
      return
    
    if n <= 2*a:
      print(-1)
      return
    
    if n <= 2*b:
      print(-1)
      return
    
    final = []
  
    if a >= b:
      final.append(1)
      current = n
      limit = n-a+1
      track = 2
  
      while current >= limit:
        final.append(current)
        final.append(track)
  
        track += 1
        current -= 1
      
      if a == b:
        for i in range(track, current+1):
          final.append(i)
      else:
        final[-1] = current
        track -= 1
        current -= 1
  
        # for i in range(track, current+1):
        #   final.append(i)
  
        for i in range(current, track-1, -1):
          final.append(i)
    else:
      current = 1
      limit = b
      final.append(n)
      track = n - 1
  
      while current <= limit:
        final.append(current)
        final.append(track)
  
        current += 1
        track -= 1
      
      final[-1] = current
      current += 1
      track += 1
  
      for i in range(current, track+1):
        final.append(i)
  
  
    # print(*final)
    if len(final) != n:
      print(-1)
      return
    
    A = 0
    B = 0
  
    for i in range(1, n-1):
      if final[i] > final[i-1] and final[i] > final[i+1]:
        A += 1
      
      if final[i] < final[i-1] and final[i] < final[i+1]:
        B += 1
    
  
    if A == a and B == b:
      print(*final)
      return
    
    print(-1)
  
  
  
  
  
  T = get_int()
  while T:
    solve()
    T -= 1
  