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

bccdb
 z
 dfdeed
 aab
 y
 abac

import java.util.*;
import java.io.*;

public class NamingCompany 
{
	static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;
 
        public FastReader()
        {
            br = new BufferedReader(new
                     InputStreamReader(System.in));
        }
 
        String next()
        {
            while (st == null || !st.hasMoreElements())
            {
                try
                {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException  e)
                {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }
 
        int nextInt()
        {
            return Integer.parseInt(next());
        }
 
        long nextLong()
        {
            return Long.parseLong(next());
        }
 
        double nextDouble()
        {
            return Double.parseDouble(next());
        }
 
        String nextLine()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        }
    }
	
	public static void main(String[] args) 
	{
		FastReader reader = new FastReader();
		char[] oleg = reader.nextLine().toCharArray();
		char[] igor = reader.nextLine().toCharArray();
		
		Arrays.sort (oleg);
		Arrays.sort (igor);
		
		TreeMap<Character, Integer> olegMap = new TreeMap<Character, Integer>();
		TreeMap<Character, Integer> igorMap = new TreeMap<Character, Integer>();
		
		int i, j, size = oleg.length;
		for (i=0; i<size/2 + size%2; i++)
		{
			if (olegMap.containsKey(oleg[i]))
			{
				int found = olegMap.get(oleg[i]);
				olegMap.replace (oleg[i], found+1);
			}
			else
				olegMap.put (oleg[i], 1);
		}
		
		for (i=size/2 + size%2; i<size; i++)
		{
			if (igorMap.containsKey(igor[i]))
			{
				int found = igorMap.get(igor[i]);
				igorMap.replace (igor[i], found+1);
			}
			else
				igorMap.put (igor[i], 1);
		}
		
		char[] report = new char[size];
		
		int first=0, last=size-1;
		
		for (i=0; i<size; i++)
		{
			if (i%2 == 0)
			{
				try
				{
					if ((int)olegMap.firstKey() < (int)igorMap.lastKey())
					{
						report[first] = olegMap.firstKey();
						decrement (olegMap, report[first]);
						first++;
					}
					else
					{
						report[last] = olegMap.lastKey();
						decrement (olegMap, report[last]);
						last--;
					}
				}
				catch (Exception e) 
				{
					report[first] = olegMap.firstKey();
					decrement (olegMap, report[first]);
					first++;
				}
			}
			else
			{
				try 
				{
					if ((int)igorMap.lastKey() > (int)olegMap.firstKey())
					{
						report[first] = igorMap.lastKey();
						decrement (igorMap, report[first]);
						first++;
					}
					else
					{
						report[last] = igorMap.firstKey();
						decrement (igorMap, report[last]);
						last--;
					}
				}
				catch (Exception e) 
				{
					report[first] = igorMap.lastKey();
					decrement (igorMap, report[first]);
					first++;
				}
			}
		}
		
		PrintWriter writer = new PrintWriter (System.out);
		//String name = new String (report);
		writer.println (new String(report));
		
		writer.close();
	}
	
	static void decrement (TreeMap<Character, Integer> treeMap, char key)
	{
		if (treeMap.get(key) > 1)
		{
			int found = treeMap.get(key)-1;
			treeMap.replace (key, found);
		}
		else
			treeMap.remove (key);
	}

}
