#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:64000000")
template <class T>
inline T sqr(T x) {
  return x * x;
}
string s, t;
int cnt[128];
int main() {
  cin >> s >> t;
  for (int i = 0; i < (int)((s).size()); ++i) {
    ++cnt[s[i]];
  }
  string res = "-1";
  for (int i = 0; i <= (int)((t).size()); ++i) {
    if (i) {
      if (--cnt[t[i - 1]] < 0) break;
    }
    string cur = t.substr(0, i);
    for (char j = 'a'; j <= 'z'; ++j) cur += string(cnt[j], j);
    for (int j = i; j < (int)((cur).size()); ++j) {
      if (i == (int)((t).size()) || cur[j] > t[i]) {
        char ch = cur[j];
        cur.erase(cur.begin() + j);
        cur.insert(cur.begin() + i, ch);
        if (cur > t && (res == "-1" || res > cur)) res = cur;
        break;
      }
    }
  }
  cout << res << endl;
  return 0;
}
