#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const int NINF = 0xc0c0c0c0;
const int INF = 0x3f3f3f3f;
const long long mod = 1e9 + 7;
const long long maxn = 1e6 + 5;
const int N = 5e3 + 5;
char s[N], t[N];
int cnt[26], lens, lent;
string ans;
void print() {
  for (int i = 0; i < 26; i++)
    for (int j = 0; j < cnt[i]; j++) ans.push_back(char(i + 'a'));
  cout << ans << '\n';
  exit(0);
}
void dfs(int x) {
  if (x == lent + 1) {
    if (x <= lens) print();
    return;
  }
  if (x == lens + 1) return;
  int num = t[x] - 'a';
  if (cnt[num] > 0) {
    cnt[num]--;
    ans.push_back(t[x]);
    dfs(x + 1);
    cnt[num]++;
    ans.pop_back();
  }
  for (int i = num + 1; i < 26; i++)
    if (cnt[i] > 0) {
      cnt[i]--;
      ans.push_back(char(i + 'a'));
      print();
    }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> s + 1 >> t + 1;
  lens = strlen(s + 1);
  lent = strlen(t + 1);
  for (int i = 1; i <= lens; i++) cnt[s[i] - 'a']++;
  dfs(1);
  cout << -1 << '\n';
  return 0;
}
