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 File {
	
	public static class FastScanner {
		BufferedReader br;
		StringTokenizer st;
		
		public FastScanner() {
			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());
		}
	}
	
	public static void main(String[] args) {
		FastScanner sc = new FastScanner();
		PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
		
		// Oleg first. Wants to make smallest.
		// Igor second. Wants to make largest.
		String s1 = sc.next();
		int[] olegCount = new int[26];
		for (char c : s1.toCharArray()) {
			olegCount[c-'a']++;
		}
		
		String s2 = sc.next();
		int[] igorCount = new int[26];		
		for (char c : s2.toCharArray()) {
			igorCount[c-'a']++;
		}
		
		int N = s1.length();
		
		StringBuilder sb = new StringBuilder();
		char c1 = 'a'; // Oleg index.
		char c2 = 'z'; // Igor index.
		
		for (int i = 0; i < N; i++) {
			if (i % 2 == 0) {
				while (c1 <= 'z' && olegCount[c1-'a'] == 0) {
					c1++;
				}
				
				sb.append(c1);
				olegCount[c1-'a']--;
			}
			else {
				while (c2 >= 'a' && igorCount[c2-'a'] == 0) {
					c2--;
				}
				
				sb.append(c2);
				igorCount[c2-'a']--;
			}
		}
		
		out.println(sb.toString());
		out.close();
	}
}
















