#include <bits/stdc++.h>
using namespace std;
int comp(int a, int b) { return a > b; }
int main() {
  int i, k, n, m;
  string a, str;
  char c;
  multiset<char> s;
  cin >> a >> str;
  n = a.size();
  for (i = 0; i < str.size(); i++) s.insert(str[i]);
  for (i = 0; i < n; i++) {
    if (!s.empty()) {
      if (*(--s.end()) > a[i]) {
        a[i] = *(--s.end());
        s.erase(--s.end());
      }
    }
  }
  for (i = 0; i < n; i++) cout << a[i];
  return 0;
}
