#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 10;
const long long mod = 998244353998244353;
const int inf = 0x3f3f3f3f;
const long long INF = 0x3f3f3f3f3f3f3f3f;
const double eps = 1e-7;
inline long long read() {
  long long X = 0, w = 0;
  char ch = 0;
  while (!isdigit(ch)) {
    w |= ch == '-';
    ch = getchar();
  }
  while (isdigit(ch)) X = (X << 3) + (X << 1) + (ch ^ 48), ch = getchar();
  return w ? -X : X;
}
bool cmp1(const char& a, const char& b) { return a < b; }
bool cmp2(const char& a, const char& b) { return a > b; }
char s1[maxn], s2[maxn];
char ans[maxn];
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> s1 >> s2;
  int len1 = strlen(s1), len2 = strlen(s2);
  sort(s1, s1 + len1, cmp1);
  sort(s2, s2 + len2, cmp2);
  int l1, r1, l2, r2;
  l1 = l2 = 0;
  if (len1 % 2 == 0) {
    r1 = len1 / 2 - 1;
  } else
    r1 = len1 / 2;
  r2 = len2 / 2 - 1;
  int L = 0, R = len1 - 1;
  for (int i = 0; i < len1; ++i) {
    if (i % 2 == 0) {
      if (s1[l1] < s2[l2]) {
        ans[L++] = s1[l1++];
      } else {
        ans[R--] = s1[r1--];
      }
    } else {
      if (s2[l2] > s1[l1]) {
        ans[L++] = s2[l2++];
      } else {
        ans[R--] = s2[r2--];
      }
    }
  }
  ans[len1] = '\0';
  cout << ans << endl;
}
