#include <bits/stdc++.h>
using namespace std;
char s1[5005], s2[5005];
int arr[30];
int main() {
  scanf("%s%s", s1, s2);
  int i, j, k;
  for (i = 0; s1[i]; i++) arr[s1[i] - 'a' + 1]++;
  int len = strlen(s2);
  s2[len++] = 'a' - 1;
  for (i = 0; i < len; i++) {
    int t = s2[i] - 'a' + 1;
    if (arr[t])
      arr[t]--;
    else {
      while (1) {
        for (j = t + 1; j < 30; j++) {
          if (arr[j]) {
            for (k = 0; k < i; k++) {
              printf("%c", s2[k]);
            }
            printf("%c", 'a' + j - 1);
            arr[j]--;
            for (j = 0; j < 30; j++) {
              for (k = 0; k < arr[j]; k++) printf("%c", j + 'a' - 1);
            }
            return 0;
          }
        }
        i--;
        if (i < 0) {
          puts("-1");
          return 0;
        }
        t = s2[i] - 'a' + 1;
        arr[t]++;
      }
    }
  }
  return 0;
}
