#include <bits/stdc++.h>
using namespace std;
const long long maxx = 1e5 + 20, sqr = 150, mod = 1e9 + 7;
long long len, n, dp[maxx][sqr][2], q, pw25[maxx], pw26[maxx], pwmod[maxx],
    fac[maxx], tmp[maxx];
string s;
long long pw(long long a, long long b) {
  if (!b) return 1ll;
  long long x = pw(a, b / 2);
  x = (x * x) % mod;
  if (b % 2) x = (x * a) % mod;
  return x;
}
long long sel(long long a, long long b) {
  long long x = 1ll;
  x = (x * fac[a]) % mod;
  x = (x * pwmod[b]) % mod;
  x = (x * pwmod[a - b]) % mod;
  return x;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  pw25[0] = pw26[0] = 1;
  for (long long i = 1; i < maxx; i++)
    pw25[i] = (pw25[i - 1] * 25) % mod, pw26[i] = (pw26[i - 1] * 26) % mod;
  fac[0] = 1;
  for (long long i = 1; i < maxx; i++) fac[i] = (fac[i - 1] * i) % mod;
  for (long long i = 0; i < maxx; i++) pwmod[i] = pw(fac[i], mod - 2);
  for (long long j = 0; j < sqr; j++) {
    dp[j][j][1] = dp[j][j][0] = 1;
    for (long long i = j + 1; i < maxx; i++) {
      dp[i][j][0] = (((dp[i - 1][j][0] * 26) % mod) +
                     (j >= 1 ? dp[i - 1][j - 1][1] : 0)) %
                    mod;
      dp[i][j][1] = (((dp[i - 1][j][1] * 25) % mod) +
                     (j >= 1 ? dp[i - 1][j - 1][1] : 0)) %
                    mod;
    }
  }
  long long c = 0;
  cin >> n >> s;
  len = s.length();
  if (len >= sqr) {
    fill(tmp, tmp + maxx, 0);
    tmp[len - 1] = 1;
    for (long long j = len; j < maxx; j++)
      tmp[j] = (((tmp[j - 1] * 26ll) % mod) +
                (((long long)sel(j, len - 1) * pw25[j + 1 - len]) % mod)) %
               mod;
  }
  for (long long i = 0; i < n; i++) {
    long long type;
    cin >> type;
    if (type == 1) {
      cin >> s, len = s.length();
      if (len >= sqr) {
        fill(tmp, tmp + maxx, 0);
        tmp[len - 1] = 1;
        for (long long j = len; j < maxx; j++)
          tmp[j] = (((tmp[j - 1] * 26ll) % mod) +
                    (((long long)sel(j, len - 1) * pw25[j + 1 - len]) % mod)) %
                   mod;
      }
    } else {
      c++;
      cin >> q;
      if (len < sqr) {
        if (len > q)
          cout << 0 << '\n';
        else
          cout << dp[q][len][0] << '\n';
        continue;
      }
      long long ans = 0ll;
      cout << tmp[q - 1] << '\n';
    }
  }
  return 0;
}
