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;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0), cout.tie(0), cout.precision(15);
  string a, b;
  cin >> a >> b;
  int n = a.size();
  char arr[300005], brr[100005];
  for (int i = 0; i < n; ++i) {
    arr[i] = a[i];
  }
  for (int i = 0; i < n; ++i) {
    brr[i] = b[i];
  }
  int n1, n2;
  if (n % 2 == 1) {
    n1 = n / 2 + 1;
    n2 = n / 2;
  } else {
    n1 = n / 2;
    n2 = n / 2;
  }
  char crr[300005];
  int i = 0;
  int chance = 1;
  int f = 0;
  sort(arr, arr + n);
  sort(brr, brr + n);
  string str1 = "", str2 = "";
  for (int i = 0; i < n1; ++i) {
    str1 += arr[i];
  }
  for (int i = n - 1; i >= n2; --i) {
    str2 += brr[i];
  }
  char ans[300000];
  for (int i = 0; i < n + 2; ++i) {
    ans[i] = '?';
  }
  while (i < n) {
    if (chance == 1) {
      if (f == 1) {
        ans[i - 1] = str1[0];
        f = 0;
      } else if (str1[0] >= str2[0]) {
        int space = n - i - 1;
        int gg;
        if (space % 2 == 0)
          gg = space / 2;
        else
          gg = space / 2 + 1;
        f = 1;
        ans[i + 1] = str1[0];
      } else {
        ans[i] = str1[0];
      }
      str1.erase(0, 1);
      chance = 2;
    } else {
      if (f == 1) {
        ans[i - 1] = str2[0];
        f = 0;
      } else if (str2[0] <= str1[str1.size() - 1]) {
        int space = n - i - 1;
        int gg;
        if (space % 2 == 0)
          gg = space / 2;
        else
          gg = space / 2 + 1;
        f = 1;
        ans[i + 1] = str2[0];
      } else {
        ans[i] = str2[0];
      }
      str2.erase(0, 1);
      chance = 1;
    }
    i++;
  }
  if (str1.size() != 0 && ans[n - 1] == '?') ans[n - 1] = str1[0];
  if (str2.size() != 0 && ans[n - 1] == '?') ans[n - 1] = str2[0];
  for (int i = 0; i < n; ++i) {
    cout << ans[i];
  }
}
