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

bccdb
 z
 dfdeed
 aab
 y
 abac

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

public class Main
{
   public static void main(String[] args) 
   {
      Task Main = new Task();
      
      InputReader in = new InputReader(System.in);
      PrintWriter out = new PrintWriter(System.out);
      
      Main.solve(in, out);   
      
      out.close();
   }
   
   public static class Task
   {
      public int[] count(String s)
      {
         int[] fr = new int[26];
         
         for (int i = 0; i < s.length(); i++) fr[s.charAt(i) - 'a']++;
         
         return fr;
      }
      
      public void solve(InputReader in, PrintWriter out) 
      {
         String a = in.nextLine();
         String b = in.nextLine();
         
         int[] fra = count(a);
         int[] frb = count(b);
      
         char[] res = new char[a.length()];
         
         int left = 0;
         int right = res.length - 1;
         
         for (int i = 0; i < a.length(); i++) {
            
            int min = 0;
            
            while (min < fra.length && fra[min] == 0) min++;
            
            int max = frb.length - 1;
            
            while (max > 0 && frb[max] == 0) max--;
            
            if (i % 2 == 0) {
               
               if (min > max) {
                  
                  res[right] = (char)('a' + min);
                  
                  right--;
                  
               } else {
                  
                  res[left] = (char)('a' + min);
                  
                  left++;
                  
               }
               
               fra[min]--;
               
            } else {
               
               if (max < min) {
                  
                  res[right] = (char)('a' + max);
                  
                  right--;
                  
               } else {
                  
                  res[left] = (char)('a' + max);
                  
                  left++;
                  
               }
               
               frb[max]--;
               
            }
            
         }
         
         out.write(new String(res));
      }
      
   }

   static class InputReader
   {
      private InputStream stream;
      private byte[] buf = new byte[2048];
      private int curChar;
      private int numChars;
 
      public InputReader(InputStream stream)
      {
         this.stream = stream;
      }
 
      public int read()
      {
         if (numChars == -1)
            throw new UnknownError();
         if (curChar >= numChars)
         {
            curChar = 0;
            try
            {
               numChars = stream.read(buf);
            }
            catch (IOException e)
            {
               throw new UnknownError();
            }
            if (numChars <= 0)
               return -1;
         }
         return buf[curChar++];
      }
 
      public int peek()
      {
         if (numChars == -1)
            return -1;
         if (curChar >= numChars)
         {
            curChar = 0;
            try
            {
               numChars = stream.read(buf);
            }
            catch (IOException e)
            {
               return -1;
            }
            if (numChars <= 0)
               return -1;
         }
         return buf[curChar];
      }
 
      public void skip(int x)
      {
         while (x-- > 0)
            read();
      }
 
      public int nextInt()
      {
         return Integer.parseInt(next());
      }
 
      public long nextLong()
      {
         return Long.parseLong(next());
      }
 
      public String nextString()
      {
         return next();
      }
 
      public String next()
      {
         int c = read();
         while (isSpaceChar(c))
            c = read();
         StringBuffer res = new StringBuffer();
         do
         {
            res.appendCodePoint(c);
            c = read();
         }
         while (!isSpaceChar(c));
 
         return res.toString();
      }
 
      public String nextLine()
      {
         StringBuffer buf = new StringBuffer();
         int c = read();
         while (c != '\n' && c != -1)
         {
            if (c != '\r')
               buf.appendCodePoint(c);
            c = read();
         }
         return buf.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 boolean hasNext()
      {
         int value;
         while (isSpaceChar(value = peek()) && value != -1)
            read();
         return value != -1;
      }
 
      private boolean isSpaceChar(int c)
      {
         return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
      }
 
   }
}