func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, m, q, t, c;   string s;   long long inv[200007];   long long p[200007];   long long f[200007];   long long nq[200007];   long long mq[200007];   long long res[200007];   long long dp[200007];   vector<long long> que[200007];   long long fpow(long long a, long long b) {     if (b == 0) return 1;     if (b == 1) return a % 1000000007;     if (b % 2)       return (a * fpow(a, b - 1)) % 1000000007;     else {       long long q = fpow(a, b / 2);       return (q * q) % 1000000007;     }   }   long long dziel(long long a, long long b) {     return (a * fpow(b % 1000000007, 1000000007 - 2)) % 1000000007;   }   long long choose(long long a, long long b) {     return dziel(f[a], f[b] * f[a - b]);   }   void solve(long long m) {     memset(dp, 0, sizeof dp);     dp[m] = 1;     long long dwumian = 1;     for (long long i = m + 1; i <= 1e5; ++i) {       dwumian = (((dwumian * (i - 1)) % 1000000007) * inv[i - m]) % 1000000007;       dp[i] = (26 * dp[i - 1] + dwumian * p[i - m]) % 1000000007;     }   }   int32_t main() {     ios_base::sync_with_stdio(0);     cin.tie(NULL);     f[0] = 1;     p[0] = 1;     for (long long i = 1; i < 200007; ++i) {       f[i] = (f[i - 1] * i) % 1000000007;       p[i] = (25 * p[i - 1]) % 1000000007;       inv[i] = fpow(i, 1000000007 - 2);     }     cin >> q >> s;     m = s.size();     for (long long i = 1; i <= q; ++i) {       cin >> t;       if (t == 1) {         cin >> s;         m = s.size();       } else {         cin >> n;         nq[++c] = n;         mq[c] = m;         que[m].push_back(c);       }     }     for (long long i = 1; i <= 1e5; ++i) {       if (!que[i].empty()) solve(i);       for (auto it : que[i]) res[it] = dp[nq[it]];     }     for (long long i = 1; i <= c; ++i) {       cout << res[i] <<   n ;     }   }   