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;
long long read() {
  char c = getchar();
  long long u = 0, f = 1;
  while (c != '-' && (c < '0' || '9' < c)) c = getchar();
  if (c == '-') {
    f = -1;
    c = getchar();
  }
  while ('0' <= c && c <= '9') {
    u = u * 10 + c - '0';
    c = getchar();
  }
  return u * f;
}
char readc() {
  for (;;) {
    char c = getchar();
    if ('A' <= c && c <= 'Z' || 'a' <= c && c <= 'z') return c;
  }
}
int read_digit() {
  for (;;) {
    char c = getchar();
    if ('0' <= c && c <= '9') return c - '0';
  }
}
inline int max(int a, int b) { return a > b ? a : b; }
inline int min(int a, int b) { return a < b ? a : b; }
template <typename T>
inline void updmax(T &a, T b) {
  if (b > a) a = b;
}
template <typename T>
inline void updmin(T &a, T b) {
  if (b < a) a = b;
}
inline void swap(int &a, int &b) {
  int t = a;
  a = b;
  b = t;
}
priority_queue<char, vector<char>, greater<char> > ha;
priority_queue<char> hb;
char a[100010], b[100010], c[100010];
int main() {
  scanf("%s", a + 1);
  scanf("%s", b + 1);
  int n = strlen(a + 1);
  for (int i = 1; i <= n; i++) {
    ha.push(a[i]);
    hb.push(b[i]);
  }
  for (int i = 1; i <= n; i += 2) {
    c[i] = ha.top();
    ha.pop();
    c[i + 1] = hb.top();
    hb.pop();
  }
  for (int i = 1; i <= n; i++) putchar(c[i]);
  return 0;
}
