#include <bits/stdc++.h>
using namespace std;
int main() {
  long long i, j, k, l, m, n = 0, r, cnt = 0, ans = 0, ans1 = 0, ans2 = 0,
                           ans3 = 0, sum = 0, sum1 = 0, ca = 1, mn = 0, mx = 0;
  long long a, b, c, d, e, f, a1, b1, c1, x, y, z, x1, y1, z1;
  long long ar[101010], ar1[1000], arr[100][100] = {0};
  double ff, ff1;
  string s, ss[1000], s2[1000], s3, s1, aa = "", bb = "", cc = "", dd = "";
  vector<string> tt;
  string sss = "hello";
  map<string, int> mp;
  vector<pair<long, long> > t;
  set<int> g;
  int aaa = 1;
  cin >> s >> s1;
  sort(s1.begin(), s1.end());
  reverse(s1.begin(), s1.end());
  for (i = j = 0; i < s.size(); i++) {
    if (s[i] < s1[j]) {
      s[i] = s1[j], j++;
    }
  }
  cout << s;
  return 0;
}
