#include <bits/stdc++.h>
using namespace std;
int cnt[1000];
string s, d;
int main() {
  cin >> s >> d;
  d += 'a' - 1;
  for (int i = (0); i < (((int)(s).size())); ++i) cnt[s[i]]++;
  int mx = -1;
  for (int i = (0); i < (min(((int)(d).size()), ((int)(s).size()))); ++i) {
    bool ok = false;
    for (int j = (d[i] + 1); j < ('z' + 1); ++j)
      if (cnt[j]) ok = true;
    if (ok) mx = i;
    if (!cnt[d[i]])
      break;
    else
      cnt[d[i]]--;
  }
  if (!~mx) return 0 * puts("-1");
  fill_n(cnt, 1000, 0);
  for (int i = (0); i < (((int)(s).size())); ++i) cnt[s[i]]++;
  for (int i = (0); i < (mx); ++i) cnt[d[i]]--;
  string ans = d.substr(0, mx);
  for (int j = (d[mx] + 1); j < ('z' + 1); ++j)
    if (cnt[j]) {
      ans += j;
      cnt[j]--;
      break;
    }
  for (int i = ('a'); i < ('z' + 1); ++i)
    for (int j = (0); j < (cnt[i]); ++j) ans += i;
  cout << ans;
  return 0;
}
