bcdef
abbbc
 z
y
 reddit
abcdef
 abc
aaa
 y
z
 cbxz
aaaa

bccdb
 z
 dfdeed
 aab
 y
 abac

def get_A_next_move():
    for i in range(26):
        if a[i] > 0:
            return i
def get_B_next_move():
    for i in range(25,-1,-1):
        if b[i] > 0:
            return i

s1 = raw_input()
s2 = raw_input()

a = [0 for i in range(26)]
b = [0 for i in range(26)]

for i in range(len(s1)):
    a[ord(s1[i])-ord('a')] += 1
    b[ord(s2[i])-ord('a')] += 1


arr = [ 0 for i in range(len(s1))]

start = 0
end = len(s1) - 1

for i in range(len(s1)):
    current_player_move = -1
    next_player_move = -1
    if i%2 == 0:
        for j in range(26):
            if a[j] > 0:
                current_player_move = j
                a[j] -= 1
                break
        next_player_move = get_B_next_move()
        if current_player_move <= next_player_move:
            arr[start] = current_player_move
            start+=1
        else:
            arr[end] = current_player_move
            end-=1

    else:
        for j in range(25,-1,-1):
            if b[j] > 0:
                current_player_move = j
                b[j] -= 1
                break
        next_player_move = get_A_next_move()
        if current_player_move >= next_player_move:
            arr[start] = current_player_move
            start+=1
        else:
            arr[end] = current_player_move
            end-=1

s = ""
for i in range(len(arr)):
    c = chr(ord('a')+arr[i])
    s += c
print s