func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MOD = 1e9 + 7, MAX = 1e5 + 5;   long long powN(long long a, long long p) {     if (p == 0) return 1;     long long z = powN(a, p / 2);     z = (z * z) % MOD;     if (p % 2) z = (z * a) % MOD;     return z;   }   vector<bool> is_prime(MAX + 1, true);   void Sieve() {     is_prime[0] = is_prime[1] = false;     int i, j;     for (i = 2; i * i <= MAX; i++) {       if (is_prime[i]) {         for (j = i * i; j <= MAX; j += i) is_prime[j] = false;       }     }   }   int main() {     string s, t;     cin >> s >> t;     int n = s.length();     string s1 = s;     if (s == t)       cout <<  No such string  << endl;     else {       bool ans = false;       bool dec = false;       for (int i = 0; i < n; i++) {         if (dec) {           if (t[i] ==  a ) {             s[i] = t[i];             continue;           }           s[i] = (t[i] - 1);           ans = true;           cout << s << endl;           break;         } else if (t[i] - s[i] > 1) {           ans = true;           s[i] = t[i] - 1;           cout << s << endl;           break;         } else if (t[i] - s[i] == 1) {           s[i]++;           dec = true;         } else           continue;       }       if (!ans) {         dec = false;         for (int i = 0; i < n; i++) {           if (dec) {             if (s1[i] ==  z ) continue;             s1[i]++;             ans = true;             cout << s1 << endl;             break;           } else if (t[i] - s1[i] > 1) {             ans = true;             s1[i] = t[i] - 1;             cout << s1 << endl;             break;           } else if (t[i] - s1[i] == 1) {             dec = true;           } else             continue;         }       }       if (!ans) cout <<  No such string  << endl;     }   }   