#include <bits/stdc++.h>
using namespace std;
vector<int> v, v2;
string n, m;
int j;
long long _n = 0, _m = 0;
int main() {
  getline(cin, n);
  getline(cin, m);
  _n = n.size();
  _m = m.size();
  j = 0;
  for (int i = 0; i < _m; i++) v.push_back(m[i]);
  sort(v.begin(), v.end());
  reverse(v.begin(), v.end());
  for (int i = 0; i < _n; i++) {
    if (n[i] < v[j] && j != _m) {
      n[i] = v[j];
      j++;
    }
  }
  printf("%s\n", n.c_str());
  return 0;
}
