#include <bits/stdc++.h>
using namespace std;
int n, m, d[256];
void att(int i, string s, string t, int greater) {
  if (greater) {
    for (int k = 'a'; k <= 'z'; k++)
      for (int j = 0; j < d[k]; j++) s += char(k);
    cout << s << endl;
    exit(0);
  }
  if (i == n) return;
  if (i < m) {
    if (d[t[i]]) {
      d[t[i]]--;
      att(i + 1, s + t[i], t, 0);
      d[t[i]]++;
    }
    for (int j = t[i] + 1; j <= 'z'; j++)
      if (d[j]) {
        d[j]--;
        att(i + 1, s + char(j), t, 1);
        d[j]++;
      }
  } else
    att(i, s, t, 1);
}
int main() {
  string s, t;
  cin >> s >> t;
  n = int(s.size());
  m = int(t.size());
  for (int i = 0; i < n; i++) d[s[i]]++;
  s = "";
  att(0, s, t, 0);
  puts("-1");
}
