import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 标准输入
        Scanner input = new Scanner(System.in);
        // 获取输入的两个字符串
        String str1 = input.next();
        String str2 = input.next();
        // 合并两个字符串
        String str3 = str1.concat(str2);
        // 将字符串按下标奇偶切分后再拼接
        StringBuffer oddStr = new StringBuffer();
        StringBuffer evenStr = new StringBuffer();
        for (int i = 0; i < str3.length(); i++) {
            char c = str3.charAt(i);
            if (i % 2 == 1) {
                // 下标为奇数
                oddStr.append(c);
            } else {
                // 下标为偶数
                evenStr.append(c);
            }
        }
        // 对奇偶字符串转数组后进行排序
        char[] oddArr = oddStr.toString().toCharArray();
        char[] evenArr = evenStr.toString().toCharArray();
        Arrays.sort(oddArr);
        Arrays.sort(evenArr);
        // 构建排序后的拼接字符串
        StringBuffer sortedStr = new StringBuffer();
        int oddIndex = 0;
        int evenIndex = 0;
        while (oddIndex < oddArr.length && evenIndex < evenArr.length) {
            sortedStr.append(evenArr[evenIndex++]).append(oddArr[oddIndex++]);
        }
        // 偶数组可能残留数据,收一下尾
        if (evenIndex == evenArr.length-1) sortedStr.append(evenArr[evenIndex]);
        // 排序完成,测试
        // System.out.println(sortedStr.toString());

        // 遍历转换相应字符
        StringBuffer res = new StringBuffer();
        for (char c : sortedStr.toString().toCharArray()) {
            if (!shouldChange(c)) {
                // 不需要转换,直接拼接
                res.append(c);
            } else {
                // 需要转换,转转换后再拼接
                res.append(change(c));
            }
        }
        // 转换拼接完成,输出结果
        System.out.println(res.toString());       
    }

    // 判断字符是否需要转换
    private static boolean shouldChange(char c) {
        if ('0' <= c && c <= '9') return true;
        if ('a' <= c && c <= 'f') return true;
        if ('A' <= c && c <= 'F') return true;
        return false;
    }

    // 转换字符的函数
    private static char change(char c) {
        // 将字符按十六进制解析成十进制数字
        int num = Integer.parseInt(String.valueOf(c),16);

        // 十进制数字转二进制字符串
        String binary = Integer.toBinaryString(num);
        // 将二进制字符串补足至4位
        while (binary.length() < 4) {
            binary = "0" + binary;
        }
        // 翻转二进制字符串
        StringBuffer temp = new StringBuffer(binary);
        temp.reverse();
        binary = temp.toString();
        // 将二进制字符串解析成十进制数字
        int newNum = Integer.parseInt(binary,2);

        // 十进制数字转十六进制字符
        char newC = Integer.toHexString(newNum).charAt(0);
        // 转大写再返回结果
        return Character.toUpperCase(newC);
    }
}