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

bccdb
 z
 dfdeed
 aab
 y
 abac

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;

public class DivCmb_415C {

	public static void main(String[] args) throws IOException {
		new DivCmb_415C().execute();
	}

	void execute() throws IOException {
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter printer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
		int[][] fSets = new int[2][];

		int ansL = 0;

		for (int i = 0; i < 2; i++) {
			String nLine = reader.readLine();
			ansL = nLine.length();
			fSets[i] = new int[ansL];
			for (int j = 0; j < ansL; j++) {
				fSets[i][j] = nLine.charAt(j) - 'a';
			}
			Arrays.sort(fSets[i]);
		}
		reader.close();

		fSets[0] = Arrays.copyOf(fSets[0], (ansL + 1) / 2);
		fSets[1] = Arrays.copyOfRange(fSets[1], (ansL + 1) / 2, ansL);
		for (int i = 0; i < fSets[1].length / 2; i++) {
			int temp = fSets[1][i];
			fSets[1][i] = fSets[1][fSets[1].length - 1 - i];
			fSets[1][fSets[1].length - 1 - i] = temp;
		}

		int[] ans = new int[ansL];

		int nAns = 0;

		if ((ansL & 1) == 1) {
			ans[ansL - 1] = fSets[0][fSets[0].length - 1];
		}

		int fPass;
		for (fPass = 0; fPass < fSets[1].length && fSets[0][fPass] <= fSets[1][fPass]; fPass++) {
			ans[nAns++] = fSets[0][fPass];
			ans[nAns++] = fSets[1][fPass];
		}

		nAns = ansL - 1 - (ansL & 1);
		
		if((ansL & 1) == 0){
			for (int sPass = fSets[1].length - 1; sPass >= fPass; sPass--) {
				ans[nAns--] = fSets[0][sPass];
				ans[nAns--] = fSets[1][sPass];
			}
		}
		else{
			for (int sPass = fSets[1].length - 1; sPass >= fPass; sPass--) {
				ans[nAns--] = fSets[1][sPass];
				ans[nAns--] = fSets[0][sPass];
			}
		}
		

		for (int i : ans) {
			printer.print((char) (i + 'a'));
		}
		printer.println();
		printer.close();
	}
}
