#include <bits/stdc++.h>
using namespace std;
string fA(string s, int p) {
  s[p]++;
  for (int i = p + 1; i < s.length(); i++) {
    s[i] = 'a';
  }
  return s;
}
string fZ(string s, int p) {
  for (int i = p + 1; i < s.length(); i++) {
    s[i] = 'z';
  }
  return s;
}
int main() {
  bool a = true, z = true;
  bool aT = true, zT = true;
  string s, t;
  cin >> s >> t;
  bool c = false;
  int l = s.length() - 1;
  if ((s[l] + 1) < t[l]) {
    s[l]++;
    cout << s << endl;
    return 0;
  }
  if (s[l] != 'a') a = false;
  if (s[l] != 'z') z = false;
  if (t[l] != 'a') aT = false;
  if (t[l] != 'z') zT = false;
  for (int i = l - 1; i > -1; i--) {
    if (s[i] < t[i]) {
      if (!a && !aT || ((z && aT) && (s[i] + 1 < t[i]))) {
        s = fA(s, i);
        cout << s << endl;
        return 0;
      } else if (!z && !zT) {
        s = fZ(s, i);
        cout << s << endl;
        return 0;
      }
    }
    if (s[i] != 'a') a = false;
    if (s[i] != 'z') z = false;
    if (t[i] != 'a') aT = false;
    if (t[i] != 'z') zT = false;
  }
  cout << "No such string" << endl;
  return 0;
}
