/*
每次从尾部开始操作,遍历每个元素,只要发生了置换元素,则从头开始,直到不能发生置换为止
*/
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        for (int i = 0; i < t; i++) {
            String s = in.next();
            char[] arr = s.toCharArray();
            while (true) {
                // 用一个布尔值,标识每次操作有没有发生置换
                boolean isCharge = false;
                // 每次都从尾部开始
                int p = arr.length - 1;
                while (p > 0) {
                    char c1 = arr[p];
                    char c2 = arr[p - 1];
                    int i1 = c1 - '0';// char转int: char - '0'
                    if (i1 > 0) {// 题目规定操作数要大于0才能操作
                        i1 = i1 - 1;
                        int i2 = c2 - '0'; // char转int
                        if (i1 > i2) {// 满足置换条件
                            isCharge = true;
                            arr[p] = (char)(i2 + '0');// int转char (char)(int + '0')
                            arr[p - 1] = (char)(i1 + '0');// int转char (char)(int + '0')
                        }
                    }
                    p--;
                }
                if (!isCharge) {// 如果没有发生过置换,则标识当前字符已达到最大
                    break;
                }
            }

            System.out.println(new String(arr));
        }
    }
}