func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   inline void rd(T &x) {     char ch;     x = 0;     bool fl = false;     while (!isdigit(ch = getchar())) (ch ==  - ) && (fl = true);     for (x = (ch ^  0 ); isdigit(ch = getchar()); x = x * 10 + (ch ^  0 ))       ;     (fl == true) && (x = -x);   }   template <class T>   inline void ot(T x) {     x / 10 ? ot(x / 10) : putchar(x % 10 +  0 );   }   template <class T>   inline void prt(T a[], int st, int nd) {     for (register int i = st; i <= nd; ++i) printf( %lld  , a[i]);     putchar(  n );   }   namespace Miracle {   const int N = 1e5 + 10;   const int mod = 1e9 + 7;   int n;   long long qm(long long x, long long y) {     long long ret = 1;     while (y) {       if (y & 1) ret = ret * x % mod;       x = x * x % mod;       y >>= 1;     }     return ret;   }   long long jie[N], inv[N];   long long m25[N], i26[N];   int iv;   int exi[N];   int ans[450][N];   int cnt;   long long C(int n, int m) {     if (n < 0 || m < 0 || n < m) return 0;     return jie[n] * inv[m] % mod * inv[n - m] % mod;   }   char s[N];   int main() {     jie[0] = 1;     for (register int i = 1; i <= N - 5; ++i) jie[i] = jie[i - 1] * i % mod;     inv[N - 5] = qm(jie[N - 5], mod - 2);     for (register int i = N - 6; i >= 0; --i) inv[i] = inv[i + 1] * (i + 1) % mod;     int m, t;     iv = qm(26, mod - 2);     m25[0] = 1, i26[0] = 1;     for (register int i = 1; i <= N - 5; ++i)       m25[i] = m25[i - 1] * 25 % mod, i26[i] = i26[i - 1] * iv % mod;     rd(t);     scanf( %s , s + 1);     m = strlen(s + 1);     int op;     while (t--) {       rd(op);       if (op == 1) {         scanf( %s , s + 1);         m = strlen(s + 1);       } else {         rd(n);         if (!exi[m]) {           exi[m] = ++cnt;           for (register int i = m; i <= N - 5; ++i) {             ans[cnt][i] = ((long long)ans[cnt][i - 1] +                            C(i - 1, m - 1) * m25[i - m] % mod * i26[i] % mod) %                           mod;           }         }         long long now = qm(26, n) * ans[exi[m]][n] % mod;         printf( %lld n , now);       }     }     return 0;   }   }  // namespace Miracle   signed main() {     Miracle::main();     return 0;   }   