Problem: You are given a positive number x. Find the smallest positive integer number that has the sum of digits equal to x and all digits are distinct (unique).

Input

The first line contains a single positive integer t (1 ≤ t ≤ 50) — the number of test cases in the test. Then t test cases follow.

Each test case consists of a single integer number x (1 ≤ x ≤ 50).

Output

Output t answers to the test cases:

  * if a positive integer number with the sum of digits equal to x and all digits are different exists, print the smallest such number; 
  * otherwise print -1. 

Example

Input


4
1
5
15
50


Output


1
5
69
-1

Solution (in JAVA):

Solution:
import java.util.*;
import java.io.*;

/**
 * Created on:  Dec 19, 2020
 * Questions: https://codeforces.com/contest/1462/problem/C
 */

public class UniqueNumber {

    public static void main(String[] args) {
        Scanner sc = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
        int t = sc.nextInt();
        for (int i = 0; i < t; i++) {
            System.out.println(getNumber(sc.nextInt()));
        }
    }

    private static int getNumber(int num) {
        if (num > 45) return -1;
        boolean[] taken = new boolean[10];
        List<Integer> nums = getNumber(taken, num);
        Collections.sort(nums);
        int result = 0;
        for (int n : nums) {
            result = result * 10 + n;
        }
        return result;
    }

    private static List<Integer> getNumber(boolean[] taken, int num) {
        List<Integer> list = new ArrayList<>();
        if (num < 0) return list;
        if (num == 0) {
            list.add(0);
        } else {
            for (int i = 9; i >= 0; i--) {
                if (taken[i]) continue;
                taken[i] = true;
                List<Integer> next = getNumber(taken, num - i);
                if (!next.isEmpty()) {
                    list.add(i);
                    list.addAll(next);
                    break;
                }
                taken[i] = false;
            }
        }
        return list;
    }
}