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

bccdb
 z
 dfdeed
 aab
 y
 abac

# -*- coding: utf-8 -*-
import math
from collections import deque

def sort(arr):
    if len(arr) <= 1:
        return arr
    else:   
        pivot = arr[0]
        small, big, pivotlist = [], [], []
        for each in arr:
            if pivot < each:
                big.append(each)
            elif pivot > each:
                small.append(each)
            else:
                pivotlist.append(each)
        return sort(small) + pivotlist + sort(big)


smaller = map(list,raw_input().split())[0]
bigger = map(list,raw_input().split())[0]
length = len(smaller)
# print smaller, bigger
smaller = deque(sort(smaller))
bigger = deque(sort(bigger))
# print smaller, bigger
ans = ""
small_time, oleg_store_first = True, None
igor_store, oleg_store = [], []
for i in range(1, length + 1):
    if small_time:
        small_time = False
        if len(bigger) == 0 or bigger[-1] < smaller[0]:
            if oleg_store_first == None:
                oleg_store_first = True
            oleg_left_turn = int(math.ceil(length / float(2))) - (i - 1) / 2
            if len(smaller) > oleg_left_turn:
                while len(smaller) > oleg_left_turn:
                        smaller.pop()
                # print " smaller list trimmed : ", smaller, length, oleg_left_turn
            oleg = smaller.pop()
            oleg_store.append(oleg)
            ## oleg가 가진 가장 작은게 igor가 저번에 낸거보다 크면 모든 oleg의 숫자는
            ## igor 것보다 크므로 저장해두었다가 나중에 뒤에서 부터 붙임
        else:
            oleg = smaller.popleft()
            ans += oleg
        # print "  current (small) : ", ans, oleg_store, igor_store
        # print "     ",smaller, bigger
        last_oleg = True
    else:
        small_time = True
        if len(smaller) == 0 or smaller[0] > bigger[-1]:
            if oleg_store_first == None:
                oleg_store_first = False
            igor_left_turn = (length / 2) - (i - 1) / 2
            if len(bigger) > igor_left_turn:
                while len(bigger) > igor_left_turn:
                    bigger.popleft()
                # print " bigger list trimmed : ", bigger, length, igor_left_turn
            igor = bigger.popleft()
            igor_store.append(igor)
            ## igor가 가진 가장 큰게 oleg가 저번에 낸거보다 작으면 모든 igor의 숫자는
            ## oleg 것보다 작으므로 가장 작은걸 뒤쪽으로 붙임
        else:
            igor = bigger.pop()
            ans += igor
        last_oleg = False
        # print "  current (big) : ", ans, oleg_store, igor_store
        # print "     ",smaller, bigger
# print store_list
if len(igor_store) > 0 or len(oleg_store) > 0:
    if len(igor_store) == 0:
        for i in range(len(oleg_list) - 1,-1,-1):
            ans += oleg_list[i]
    elif len(oleg_store) == 0:
        for i in range(len(igor_list) - 1,-1,-1):
            ans += igor_list[i]
    else:
        temp = []
        if oleg_store_first and (len(oleg_store) + len(igor_store)) % 2 == 1:
            while len(oleg_store) > 0 or len(igor_store) > 0:
                if len(igor_store) > 0:
                    temp.append(igor_store.pop())
                if len(oleg_store) > 0:
                    temp.append(oleg_store.pop())
        else:
            while len(oleg_store) > 0 or len(igor_store) > 0:
                if len(oleg_store) > 0:
                    temp.append(oleg_store.pop())
                if len(igor_store) > 0:
                    temp.append(igor_store.pop())
        # print temp
        for i in temp:
            ans += i
print ans
# print smaller, bigger
