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

bccdb
 z
 dfdeed
 aab
 y
 abac

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


public class C{
	
	public static void main(String[] args) {
		FastScannerC sc = new FastScannerC(System.in);
		
		String a = sc.next();
		String b = sc.next();
		
		int len = a.length();
		
		ArrayList<Character> first = new ArrayList<>();
		ArrayList<Character> sec = new ArrayList<>();
		
		char[] arrA = a.toCharArray();
		char[] arrB = b.toCharArray();
		
		for(char c : arrA){
			first.add(c);
		}
		
		for(char c : arrB){
			sec.add(c);
		}
		Collections.sort(first);
		Collections.sort(sec);
		Collections.reverse(sec);
		

		ArrayList<Character> tempA = new ArrayList<>();
		ArrayList<Character> tempB = new ArrayList<>();
		
		for(int i = 0 ; i < ((len/2)+1) ; i++){
			tempA.add(first.get(i));
		}
		
		for(int i = 0 ; i < ((len/2)) ; i++){
			tempB.add(sec.get(i));
		}
		first = tempA;
		sec = tempB;
		
		
		char[] arr = new char[len];
		
		int idxA = 0;
		int idxB = 0;
		
//		for(char c : first){
//			System.out.print(c);
//		}
//		System.out.println();
//		
//		for(char c : sec){
//			System.out.print(c);
//		}
//		System.out.println();
		
		int lenA = first.size();
		int lenB = sec.size();
		
		boolean turn = true;
		
		for(int i = 0 ; i < len ; i++){
			if(turn){	// Oleg turn
				if(idxB < lenB && sec.get(idxB) < first.get(idxA)){
//					System.out.println(first.get(lenA-1));
					arr[len-1] = first.get(lenA-1);
					lenA--;
					len--;
					i--;
				}
				else{
					arr[i] = first.get(idxA);
					idxA++;
				}
				
			}
			else{
//				System.out.println(first.get(idxA) + " " + sec.get(idxB));
				if(idxA < lenA && first.get(idxA) > sec.get(idxB)){
					arr[len-1] = sec.get(lenB-1);
					lenB--;
					len--;
					i--;
				}
				else{
					arr[i] = sec.get(idxB);
					idxB++;
				}
				
			}
			
			turn = !turn;
		}
		
		System.out.println(String.copyValueOf(arr));
	}

}

class FastScannerC{
    private InputStream stream;
    private byte[] buf = new byte[1024];
    private int curChar;
    private int numChars;
    private SpaceCharFilter filter;

    public FastScannerC(InputStream stream)
    {
        this.stream = stream;
    }

    public int read()
    {
        if (numChars == -1)
            throw new InputMismatchException();
        if (curChar >= numChars)
        {
            curChar = 0;
            try
            {
                numChars = stream.read(buf);
            } catch (IOException e)
            {
                throw new InputMismatchException();
            }
            if (numChars <= 0)
                return -1;
        }
        return buf[curChar++];
    }

    public int nextInt()
    {
        int c = read();
        while (isSpaceChar(c))
            c = read();
        int sgn = 1;
        if (c == '-')
        {
            sgn = -1;
            c = read();
        }
        int res = 0;
        do
        {
            if (c < '0' || c > '9')
                throw new InputMismatchException();
            res *= 10;
            res += c - '0';
            c = read();
        } while (!isSpaceChar(c));
        return res * sgn;
    }

    public String next()
    {
        int c = read();
        while (isSpaceChar(c))
            c = read();
        StringBuilder res = new StringBuilder();
        do
        {
            res.appendCodePoint(c);
            c = read();
        } while (!isSpaceChar(c));
        return res.toString();
    }
    
    public String nextLine()
    {
        int c = read();
        StringBuilder res = new StringBuilder();
        do
        {
            res.appendCodePoint(c);
            c = read();
        } while (!isLineEndChar(c));
        return res.toString();
    }    
    
    public double nextDouble() {
        int c = read();
        while (isSpaceChar(c))
            c = read();
        int sgn = 1;
        if (c == '-') {
            sgn = -1;
            c = read();
        }
        double res = 0;
        while (!isSpaceChar(c) && c != '.') {
            if (c == 'e' || c == 'E')
                return res * Math.pow(10, nextInt());
            if (c < '0' || c > '9')
                throw new InputMismatchException();
            res *= 10;
            res += c - '0';
            c = read();
        }
        if (c == '.') {
            c = read();
            double m = 1;
            while (!isSpaceChar(c)) {
                if (c == 'e' || c == 'E')
                    return res * Math.pow(10, nextInt());
                if (c < '0' || c > '9')
                    throw new InputMismatchException();
                m /= 10;
                res += (c - '0') * m;
                c = read();
            }
        }
        return res * sgn;
    }
    
    public long nextLong() {
        int c = read();
        while (isSpaceChar(c))
            c = read();
        int sgn = 1;
        if (c == '-') {
            sgn = -1;
            c = read();
        }
        long res = 0;
        do {
            if (c < '0' || c > '9')
                throw new InputMismatchException();
            res *= 10;
            res += c - '0';
            c = read();
        } while (!isSpaceChar(c));
        return res * sgn;
    }
    
    public boolean isSpaceChar(int c)
    {
        if (filter != null)
            return filter.isSpaceChar(c);
        return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
    }
    
    public boolean isLineEndChar(int c)
    {
        if (filter != null)
            return filter.isSpaceChar(c);
        return c == '\n' || c == '\r' || c == -1;
    }

    public interface SpaceCharFilter
    {
        public boolean isSpaceChar(int ch);
    }
}