#include <bits/stdc++.h>
using namespace std;
int i, j, k;
map<char, int> mp;
stack<char> st;
int main() {
  string a, b;
  cin >> a >> b;
  sort(b.begin(), b.end());
  for (i = 0; i < b.size(); i++) {
    mp[b[i]]++;
  }
  st.push(b[0]);
  for (i = 0; i < b.size(); i++) {
    if (b[i] != st.top()) {
      st.push(b[i]);
    }
  }
  i = 0;
  k = st.size();
  while (!st.empty()) {
    b[i] = st.top();
    st.pop();
    i++;
  }
  for (i = 0; i < a.size(); i++) {
    for (j = 0; j < k; j++) {
      if (a[i] - '0' < b[j] - '0' && mp[b[j]] > 0) {
        a[i] = b[j];
        mp[b[j]]--;
        break;
      }
      if (a[i] - '0' > b[j] - '0') {
        break;
      }
    }
  }
  cout << a;
}
