func_code_string: #include <bits/stdc++.h>   using namespace std;   char ans[444444], a[444444];   long long h1[444444], h2[444444], p[444444];   int d1, d2, n;   bool check(int i, int e) {     if (i > n) return e;     int s = e ?  a  : a[i];     for (char x = s; x <=  z ; ++x) {       h1[i] = h1[i - 1] * 241 + x;       h2[i] = h2[i - 1] + p[i] * x;       h1[i] %= 1000000007;       h2[i] %= 1000000007;       if (i >= d1) {         long long t = (h1[i] - h1[i - d1] * p[d1]) % 1000000007 * p[i + 1 - d1] %                       1000000007;         long long q = h2[i] - h2[i - d1];         if ((t - q) % 1000000007 == 0) continue;       }       if (i >= d1) {         long long t = (h1[i] - h1[i - d2] * p[d2]) % 1000000007 * p[i + 1 - d2] %                       1000000007;         long long q = h2[i] - h2[i - d2];         if ((t - q) % 1000000007 == 0) continue;       }       ans[i] = x;       if (check(i + 1, e || (x > a[i]))) return 1;     }     return 0;   }   int main() {     scanf( %d , &d1);     d2 = d1 + 1;     scanf( %s , a + 1);     n = strlen(a + 1);     p[0] = 1;     ans[n + 1] =   0 ;     for (int i = 1; i <= n; ++i) p[i] = p[i - 1] * 241 % 1000000007;     if (check(1, 0))       printf( %s n , ans + 1);     else       puts( Impossible );   }   