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

bccdb
 z
 dfdeed
 aab
 y
 abac

#include <bits/stdc++.h>
using namespace std;
void rd(int &a) { scanf("%d", &a); }
void rd(int &a, int &b) { scanf("%d %d", &a, &b); }
void rd(int &a, int &b, int &c) { scanf("%d %d %d", &a, &b, &c); }
void rd(long long &a) { scanf("%lld", &a); }
void rd(long long &a, long long &b) { scanf("%lld %lld", &a, &b); }
void rd(long long &a, long long &b, long long &c) {
  scanf("%lld %lld %lld", &a, &b, &c);
}
void rd(double &a) { scanf("%lf", &a); }
void rd(double &a, double &b) { scanf("%lf %lf", &a, &b); }
void rd(double &a, double &b, double &c) { scanf("%lf %lf %lf", &a, &b, &c); }
int main() {
  string igor, oleg;
  cin >> igor >> oleg;
  int n, i, j, f, l, ii, oi, il, ol;
  n = igor.length();
  string ans = igor;
  sort(igor.begin(), igor.end());
  sort(oleg.begin(), oleg.end());
  reverse(oleg.begin(), oleg.end());
  ii = 0;
  il = (n + 1) / 2 - 1;
  oi = 0;
  ol = n / 2 - 1;
  f = 0;
  l = n - 1;
  bool turn = true;
  for (i = 0; i < n; i++) {
    if (turn == true) {
      turn = false;
      if (igor[ii] < oleg[oi]) {
        ans[f] = igor[ii];
        f++;
        ii++;
      } else {
        ans[l] = igor[il];
        l--;
        il--;
      }
    } else {
      turn = true;
      if (oleg[oi] > igor[ii]) {
        ans[f] = oleg[oi];
        f++;
        oi++;
      } else {
        ans[l] = oleg[ol];
        l--;
        ol--;
      }
    }
  }
  cout << ans << endl;
  return 0;
}
