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

bccdb
 z
 dfdeed
 aab
 y
 abac

import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.InputMismatchException;
import java.io.IOException;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author Darshan
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TaskC solver = new TaskC();
        solver.solve(1, in, out);
        out.close();
    }

    static class TaskC {
        int len;

        int[] read(InputReader in, PrintWriter out) {
            int[] frq = new int[26];
            char[] s = in.next().toCharArray();
            len = s.length;
            for (int i = 0; i < len; i++) {
                frq[s[i] - 'a']++;
            }
            //  for(char c:s)
//out.print(c);
            //      out.println("__??");
            return frq;
        }

        public void solve(int testNumber, InputReader in, PrintWriter out) {
            int frq[] = read(in, out);
            int frq1[] = read(in, out);
            char[] res = new char[len];
            int mx = 0, min = 0;

            int l = 0;
            int r = len - 1;
            //out.println(mx+" "+min);

            for (int i = 0; i < len; i++) {
                if (i % 2 == 0) {
                    min = 0;
                    while (frq[min] == 0)
                        min++;

                    mx = 25;
                    while (frq1[mx] == 0)
                        mx--;
                    // out.println((char)(mx+'a')+" "+(char)(min+'a')+" "+frq[min]);
                    if (min < mx) {


                        res[l++] = (char) (min + 'a');
                        frq[min]--;

                    } else {
                        //insert min of max at end
                        int mk = (len - 1 - i) / 2;
                        while (frq[min] <= mk) {
                            mk -= frq[min];
                            min++;
                        }
                        // out.println((char)(mx+'a')+" "+(char)(min+'a')+" "+frq[min]);
                        res[r--] = (char) (min + 'a');
                    }

                } else {
                    min = 0;
                    while (frq[min] == 0)
                        min++;

                    mx = 25;
                    while (frq1[mx] == 0)
                        mx--;
                    // out.println((char)(mx+'a')+" "+(char)(min+'a')+" "+frq[min]);
                    if (min < mx) {


                        //  out.println(mx+" "+min+" "+frq1[mx]);
                        res[l++] = (char) (mx + 'a');
                        frq1[mx]--;

                    } else {
                        //insert min of max at end
                        int mk = (len - 1 - i) / 2;
                        while (frq1[mx] <= mk) {
                            mk -= frq1[mx];
                            mx--;
                        }
                        // out.println((char)(mx+'a')+" "+(char)(min+'a')+" "+frq[min]);
                        res[r--] = (char) (mx + 'a');

                    }
                }
            }
            for (char c : res)
                out.print(c);
        }

    }

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

        public InputReader(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 String readString() {
            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 boolean isSpaceChar(int c) {
            if (filter != null)
                return filter.isSpaceChar(c);
            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
        }

        public String next() {
            return readString();
        }

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

        }

    }
}

