#include <bits/stdc++.h>
int num[128];
char s[5005], t[5005], na[5005];
int main(int argc, char *argv[]) {
  memset(num, 0, sizeof(num));
  scanf("%s%s", s, t);
  int i;
  for (i = 0; s[i]; ++i) {
    ++num[s[i]];
  }
  int j;
  for (i = 0; t[i]; ++i) {
    if (num[t[i]] > 0) {
      --num[t[i]];
      na[i] = t[i];
      continue;
    }
    break;
  }
  for (; i >= 0; --i) {
    for (j = t[i] + 1; j <= 'z'; ++j) {
      if (num[j] > 0) break;
    }
    if (j <= 'z') break;
    if (i > 0) ++num[na[i - 1]];
  }
  if (i >= 0) {
    --num[j];
    na[i++] = j;
    for (j = 'a'; j <= 'z'; ++j) {
      while (num[j]--) na[i++] = j;
    }
    na[i] = 0;
  } else {
    na[0] = '-';
    na[1] = '1';
    na[2] = 0;
  }
  puts(na);
  return 0;
}
