#include <bits/stdc++.h>
using namespace std;
int main() {
  char str[100010], str1[100010];
  vector<char> vec;
  vector<char> vec1;
  vector<char>::iterator it;
  long i, j, k;
  while (gets(str)) {
    gets(str1);
    vec.assign(str, str + strlen(str));
    vec1.assign(str1, str1 + strlen(str1));
    sort(vec1.begin(), vec1.end());
    reverse(vec1.begin(), vec1.end());
    i = j = 0;
    while (1) {
      if (vec1[i] > vec[j]) {
        vec[j] = vec1[i];
        j++;
        i++;
      } else
        j++;
      if (vec.size() == j || vec1.size() == i) break;
    }
    for (i = 0; i < vec.size(); i++) printf("%c", vec[i]);
    printf("\n");
  }
  return 0;
}
