#include <bits/stdc++.h>
using namespace std;
char s[5002];
char t[5002];
char sta[5003];
int cnts[27];
int cntt[27];
int main() {
  scanf("%s%s", s, t);
  int i, j, k;
  int flg, tmp, last, mark;
  for (i = 0; s[i] != '\0'; i++) {
    cnts[s[i] - 'a']++;
  }
  int sh = -1;
  last = -1;
  for (i = 0; t[i] != '\0'; i++) {
    flg = 1;
    tmp = t[i] - 'a';
    if (cnts[tmp]) {
      flg = 0;
      cnts[tmp]--;
      sta[++sh] = t[i];
    }
    for (j = tmp + 1; j <= 25; j++) {
      if (cnts[j]) {
        last = i;
        mark = j;
        break;
      }
    }
    if (flg) {
      break;
    }
  }
  if (flg || s[i] == '\0') {
    if (last == -1) {
      puts("-1");
      return 0;
    } else if (i == last) {
      cnts[mark]--;
      printf("%s", sta);
      putchar('a' + mark);
    } else {
      for (; sh >= last; sh--) {
        cnts[sta[sh] - 'a']++;
      }
      sta[sh + 1] = '\0';
      cnts[mark]--;
      printf("%s", sta);
      putchar('a' + mark);
    }
  } else
    printf("%s", sta);
  for (i = 0; i <= 25; i++)
    while (cnts[i]--) {
      putchar(i + 'a');
    }
  puts("");
  return 0;
}
