func_code_string: #include <bits/stdc++.h>   using namespace std;   struct query {     int id, n;   };   vector<query> ql[101000];   query now;   int m, len, n, ans[101000], sum[101000], qm, fac[201000], inv[201000],       ex[110000];   char str[101000];   const int mod = 1e9 + 7;   int power(int a, int n) {     if (n == 0) return 1;     int res = power(a, n / 2);     res = (int)((long long)res * (long long)res % mod);     if (n % 2) res = (int)((long long)res * (long long)a % mod);     return res;   }   int main() {     int i, j, s, p, q, flag, sz = 0, tmp;     qm = (int)((long long)25 * (long long)power(26, mod - 2) % mod);     for (i = 0; i <= 100000; i++) {       if (i == 0)         ex[i] = 1;       else         ex[i] = (int)((long long)ex[i - 1] * (long long)qm % mod);     }     for (i = 0; i <= 200000; i++) {       if (i == 0)         fac[i] = 1;       else         fac[i] = (int)((long long)fac[i - 1] * (long long)i % mod);     }     inv[200000] = power(fac[200000], mod - 2);     for (i = 199999; i >= 0; i--)       inv[i] = (int)((long long)(i + 1) * (long long)inv[i + 1] % mod);     scanf( %d%s , &m, str);     len = strlen(str);     while (m--) {       scanf( %d , &flag);       if (flag == 1) {         scanf( %s , str);         len = strlen(str);       } else {         scanf( %d , &n);         now.id = sz++;         now.n = n;         ql[len].push_back(now);       }     }     for (i = 1; i <= 100000; i++) {       int ax = 0;       for (j = 0; j < ql[i].size(); j++) {         if (ax < ql[i][j].n) ax = ql[i][j].n;       }       for (j = 0; j <= ax - i; j++) {         tmp = (int)((long long)fac[j + i - 1] * (long long)inv[j] % mod);         tmp = (int)((long long)tmp * (long long)inv[i - 1] % mod);         tmp = (int)((long long)tmp * (long long)ex[j] % mod);         if (j > 0)           sum[j] = (sum[j - 1] + tmp) % mod;         else           sum[j] = tmp;       }       for (j = 0; j < ql[i].size(); j++) {         if (ql[i][j].n < i)           ans[ql[i][j].id] = 0;         else           ans[ql[i][j].id] = (int)((long long)power(26, ql[i][j].n - i) *                                    (long long)sum[ql[i][j].n - i] % mod);       }     }     for (i = 0; i < sz; i++) printf( %d n , ans[i]);     return 0;   }   