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.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class B {
    static BufferedReader br;
    static StringTokenizer st;
    static PrintWriter pw;

    static String nextToken() {
        try {
            while (st == null || !st.hasMoreTokens()) {
                st = new StringTokenizer(br.readLine());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return st.nextToken();
    }

    static int nextInt() {
        return Integer.parseInt(nextToken());
    }

    static long nextLong() {
        return Long.parseLong(nextToken());
    }

    static double nextDouble() {
        return Double.parseDouble(nextToken());
    }

    static String nextLine() {
        try {
            return br.readLine();
        } catch (IOException e) {
            throw new IllegalArgumentException();
        }
    }

    static char nextChar() {
        try {
            return (char) br.read();
        } catch (IOException e) {
            throw new IllegalArgumentException(e);
        }
    }

    public static void main(String[] args) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        pw = new PrintWriter(System.out);
        int t = 1;
        t = nextInt();
        while (t-- > 0) {
            solve();
        }
        pw.close();
    }

    private static void solve() {
        int n = nextInt();
        int a = nextInt();
        int b = nextInt();
        if (!check(n, a, b)) {
            pw.println(-1);
        } else {
            int l = 1;
            int r = n;
            int k;
            if (a>b) {
                k = a;
                for (int i = 0; i < k; i++) {
                    pw.print(l++ + " ");
                    pw.print(r-- + " ");
                }
                for (int i = r; i >= l; i--) {
                    pw.print(i + " ");
                }
                pw.println();
            } else if (b > a) {
                k=b;
                for (int i = 0; i < k; i++) {
                    pw.print(r-- + " ");
                    pw.print(l++ + " ");
                }
                for (int i = l; i <=r; i++) {
                    pw.print(i + " ");
                }
                pw.println();
            } else {
                k=a;
                for (int i = 0; i < k; i++) {
                    pw.print(r-- + " ");
                    pw.print(l++ + " ");
                }
                for (int i = r; i >= l; i--) {
                    pw.print(i + " ");
                }
                pw.println();
            }
        }

    }

    private static boolean check(int n, int a, int b) {
        if (a-b>1) return false;
        if (b-a>1) return false;
        if (b+a > n-2) return false;
        return true;
    }

}