#include <bits/stdc++.h>
using namespace std;
int tag[10];
int main() {
  string a, b;
  while (cin >> a >> b) {
    memset(tag, 0, sizeof(tag));
    ;
    int len = a.size();
    int len1 = b.size();
    for (int i = 0; i < len1; i++) {
      int num = b[i] - '0';
      tag[num]++;
    }
    for (int i = 0; i < len; i++) {
      int p = a[i] - '0';
      int j = 9;
      while (j > p) {
        if (!tag[j]) j--;
        if (tag[j] && j > p) {
          a[i] = j + '0';
          tag[j]--;
          break;
        }
      }
    }
    for (int i = 0; i < len; i++) cout << a[i];
    cout << endl;
  }
  return 0;
}
