func_code_string: #include <bits/stdc++.h>   using namespace std;   struct query {     int n, str_l, id;     friend bool operator<(query a, query b) { return a.str_l < b.str_l; }   };   const long long MOD = 1e9 + 7;   const int maxn = 1e5 + 5;   int n, str_len;   char str[maxn];   long long ans[maxn], fac[maxn], ifac[maxn], inv[maxn], q25[maxn], q26[maxn],       iq26[maxn];   long long s[maxn];   query q[maxn];   int q_len;   int read_int() {     int t = 1, m = 0;     char ch = getchar();     while (ch <  0  || ch >  9 ) {       if (ch ==  - ) t = -1;       ch = getchar();     }     while ( 0  <= ch && ch <=  9 )       m = (m << 3) + (m << 1) + ch -  0 , ch = getchar();     return t * m;   }   void init() {     fac[0] = fac[1] = ifac[0] = ifac[1] = inv[1] = 1;     q25[0] = q26[0] = iq26[0] = 1;     for (int i = 2; i < maxn; i++) {       fac[i] = fac[i - 1] * i % MOD;       inv[i] = (MOD - MOD / i) * inv[MOD % i] % MOD;       ifac[i] = ifac[i - 1] * inv[i] % MOD;     }     for (int i = 1; i < maxn; i++)       iq26[i] = iq26[i - 1] * inv[26] % MOD, q25[i] = q25[i - 1] * 25 % MOD,       q26[i] = q26[i - 1] * 26 % MOD;   }   long long qpow(long long a, long long b) {     long long c = 1;     while (b) {       if (b & 1) c = c * a % MOD;       b >>= 1, a = a * a % MOD;     }     return c;   }   inline long long C(long long a, long long b) {     return fac[a] * ifac[b] % MOD * ifac[a - b] % MOD;   }   int main() {     init();     int Q = read_int();     scanf( %s , str), str_len = strlen(str);     while (Q--) {       int t = read_int();       if (t == 1)         scanf( %s , str), str_len = strlen(str);       else         q_len++, q[q_len].str_l = str_len, q[q_len].n = read_int(),                  q[q_len].id = q_len;     }     sort(q + 1, q + 1 + q_len);     for (int t = 1; t <= q_len; t++) {       n = q[t].n, str_len = q[t].str_l;       if (str_len != q[t - 1].str_l) {         memset(s, 0, sizeof(s));         for (int i = str_len; i < maxn; i++)           s[i] = (s[i - 1] + C(i - 1, str_len - 1) * iq26[i] % MOD *                                  q25[i - str_len] % MOD) %                  MOD;       }       ans[q[t].id] = q26[n] * s[n] % MOD;     }     for (int i = 1; i <= q_len; i++) printf( %lld n , ans[i]);     return 0;   }   