#include <bits/stdc++.h>
using namespace std;
template <typename T>
double DIS(T va, T vb) {
  return sqrt((double)(va.x - vb.x) * (va.x - vb.x) +
              (va.y - vb.y) * (va.y - vb.y));
}
template <class T>
inline T INT_LEN(T v) {
  int len = 1;
  while (v /= 10) ++len;
  return len;
}
char ar[100005], br[100005];
bool cmp(char va, char vb) { return va > vb; }
void solve(char *s, char *s2) {
  int n = (int)strlen(s);
  int m = (int)strlen(s2);
  sort(s2, s2 + m, cmp);
  int i, j;
  for (i = j = 0; i < n && j < m; i++) {
    if (s[i] < s2[j]) {
      s[i] = s2[j];
      j++;
    }
  }
  puts(s);
}
int main(void) {
  while (2 == scanf("%s%s", ar, br)) {
    solve(ar, br);
  }
  return 0;
}
