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 A {
    public static void main(String[] args) throws Exception {
        FastScanner fs = new FastScanner();
        PrintWriter out = new PrintWriter(System.out);

        char[] olegs = fs.nextCharArray();
        char[] igors = fs.nextCharArray();
        int n = olegs.length;

        Arrays.sort(olegs);
        Arrays.sort(igors);

        ArrayList<Character> oleg = new ArrayList<>(), igor = new ArrayList<>();
        for(int i = 0; i < n/2 + (n%2); i++) oleg.add(olegs[i]);
        for(int i = n/2 + (n%2); i < n; i++) igor.add(igors[i]);

//        System.out.println(oleg.toString() + "\n" + igor.toString());

        char[] res = new char[n];
        int p1 = 0, p2 = igor.size()-1;

        int i;
        for(i = 0; i < n; i++) {
            if(i%2 == 0) {
                //oleg's turn
                //oleg's should be less than igor's.

                if(p2 < 0) {
                    res[i] = oleg.get(p1);
                    break;
                }

                char ol = oleg.get(p1);
                char ig = igor.get(p2);

                if(ol < ig) {
                    res[i] = ol;
                } else {
                    break;
                }
                p1++;
            }

            else {
                //igor's turn
                //igor's should be greater than oleg's.

                if(p1 == oleg.size()) {
                    res[i] = igor.get(p2);
                    break;
                }

                char ol = oleg.get(p1);
                char ig = igor.get(p2);

                if(ig > ol) {
                    res[i] = ig;
                } else {
                    break;
                }
                p2--;
            }
        }

        p1 = oleg.size()-1;
        p2 = 0;
        int index = n-1;
        for(; i < n; i++) {
            if(i%2==0) {
                res[index] = oleg.get(p1);
                p1--;
            } else {
                res[index] = igor.get(p2);
                p2++;
            }
            index--;
        }

        StringBuilder sb = new StringBuilder();
        for(i = 0; i < n; i++) sb.append(res[i]);

        out.println(sb);

        out.close();
    }

    static class FastScanner {
        BufferedReader br;
        StringTokenizer st;

        public FastScanner() {
            try	{
                br = new BufferedReader(new InputStreamReader(System.in));
//                br = new BufferedReader(new FileReader("testdata.out"));
                st = new StringTokenizer("");
            } catch (Exception e){e.printStackTrace();}
        }

        public String next() {
            if (st.hasMoreTokens())	return st.nextToken();
            try {st = new StringTokenizer(br.readLine());}
            catch (Exception e) {e.printStackTrace();}
            return st.nextToken();
        }

        public int nextInt() {return Integer.parseInt(next());}

        public long nextLong() {return Long.parseLong(next());}

        public double nextDouble() {return Double.parseDouble(next());}

        public String nextLine() {
            String line = "";
            try {line = br.readLine();}
            catch (Exception e) {e.printStackTrace();}
            return line;
        }

        public Integer[] nextIntegerArray(int n) {
            Integer[] a = new Integer[n];
            for(int i = 0; i < n; i++) a[i] = nextInt();
            return a;
        }

        public int[] nextIntArray(int n) {
            int[] a = new int[n];
            for(int i = 0; i < n; i++) a[i] = nextInt();
            return a;
        }

        public char[] nextCharArray() {
            return nextLine().toCharArray();
        }
    }
}

