python的
a = input().split(' ')
b = list(a[0] + a[1])#第一步完成
index = 0
jishu = []
oushu = []
while b:#字符串拆分
    jishu.append(b.pop(0))
    if b:
        oushu.append(b.pop(0))
jishu.sort(key = lambda x:ord(x),reverse= False)#字符串排序
oushu.sort(key = lambda x:ord(x),reverse= False)
while jishu or oushu:#字符串合并,第二步完成
    b.append(jishu.pop(0))
    if oushu:
        b.append(oushu.pop(0))
result = []
for i in b:
    if ord('0')<=ord(i)<=ord('9'):#0到9
        c = bin(int(i))[2::]#取2进制,删除掉开头的0b
        c = int(('0' * (4 - len(c)) + c)[::-1],2)#二进制补全同时反转,再用int(x,2)转换为10进制
        if c < 10:#假如说小于10,直接输出数字字符
            result.append(str(c))
        else:#如果大于10,要输出A到F,大写字母,采用ASCII码直接生成
            result.append(chr(c-10+ord('A')))
    else:
        if ord('A')<= ord(i.upper())<=ord('F'):#A到F,直接大写确认
            i = i.upper()
            c = bin(ord(i)-ord('A')+10)[2::]#通过ASCII码算出对应16进制,然后转换为二进制反转
            c = int(('0' * (4 - len(c)) + c)[::-1], 2)#与0到9一样的的流程             
                        if c < 10:
                result.append(str(c))
            else:
                result.append(chr(c-10+ord('A')))
        else:
            result.append(i)
print(''.join(result))