#include <bits/stdc++.h>
using namespace std;
string s, t, ans;
int cnt[26];
bool check(int p) {
  if (p >= t.length()) return s.length() > t.length();
  for (int i = t[p] - 'a' + 1; i < 26; i++)
    if (cnt[i] > 0) return true;
  bool flag = false;
  if (cnt[t[p] - 'a'] > 0) {
    cnt[t[p] - 'a']--;
    flag = check(p + 1);
    cnt[t[p] - 'a']++;
  }
  return flag;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> s >> t;
  memset(cnt, 0, sizeof(cnt));
  for (int i = 0; i < s.length(); i++) cnt[s[i] - 'a']++;
  if (check(0)) {
    ans = "";
    for (int i = 0; i < t.length(); i++) {
      bool flag = false;
      if (cnt[t[i] - 'a'] > 0) {
        cnt[t[i] - 'a']--;
        if (check(i + 1))
          ans += t[i], flag = true;
        else
          cnt[t[i] - 'a']++;
      }
      if (!flag) {
        for (int j = t[i] - 'a' + 1; j < 26; j++)
          if (cnt[j] > 0) {
            cnt[j]--;
            ans += 'a' + j;
            break;
          }
        break;
      }
    }
    for (int i = 0; i < 26; i++)
      if (cnt[i] > 0) {
        for (int j = 0; j < cnt[i]; j++) ans += 'a' + i;
        cnt[i] = 0;
      }
    cout << ans << endl;
  } else
    cout << -1 << endl;
  return 0;
}
