#include <bits/stdc++.h>
using namespace std;
template <class X, class Y>
void minimize(X &x, const Y &y) {
  if (x > y) x = y;
}
template <class X, class Y>
void maximize(X &x, const Y &y) {
  if (x < y) x = y;
}
const int mod = (int)1e9 + 7;
int pw(int x, int k) {
  int res = 1;
  int mul = x;
  while (k > 0) {
    if (k & 1) res = 1LL * res * mul % mod;
    mul = 1LL * mul * mul % mod;
    k >>= 1;
  }
  return (res);
}
int frac[100100], finv[100100], pw25[100100], pw26[100100], invPw26[100100];
int small[100100][333 + 2], f[100100], s[100100];
int comb(int n, int k) {
  if (k > n) return (0);
  return (1LL * frac[n] * finv[k] % mod * finv[n - k] % mod);
}
void precalc(void) {
  frac[0] = finv[0] = 1;
  for (int i = (1), _b = (100100 - 1); i <= _b; i = i + 1)
    frac[i] = 1LL * frac[i - 1] * i % mod;
  for (int i = (1), _b = (100100 - 1); i <= _b; i = i + 1)
    finv[i] = pw(frac[i], mod - 2);
  pw25[0] = pw26[0] = 1;
  for (int i = (1), _b = (100100 - 1); i <= _b; i = i + 1)
    pw25[i] = 25LL * pw25[i - 1] % mod;
  for (int i = (1), _b = (100100 - 1); i <= _b; i = i + 1)
    pw26[i] = 26LL * pw26[i - 1] % mod;
  for (int i = (0), _b = (100100 - 1); i <= _b; i = i + 1)
    invPw26[i] = pw(pw26[i], mod - 2);
}
void smallPrepare(void) {
  for (int j = (1), _b = (333); j <= _b; j = j + 1) {
    small[j][j] = 1;
    for (int i = (j + 1), _b = (100100 - 1); i <= _b; i = i + 1)
      small[i][j] =
          (26LL * small[i - 1][j] + 1LL * pw25[i - j] * comb(i - 1, j - 1)) %
          mod;
  }
}
void bigPrepare(int n) {
  for (int i = (n), _b = (100100 - 1); i <= _b; i = i + 1)
    f[i] = 1LL * pw25[i - n] * comb(i - 1, n - 1) % mod * invPw26[i] % mod;
  s[n - 1] = 0;
  for (int i = (n), _b = (100100 - 1); i <= _b; i = i + 1)
    s[i] = (s[i - 1] + f[i]) % mod;
}
int answer(int n, int m) {
  if (m <= 333) return (small[n][m]);
  if (n < m) return (0);
  return (1LL * s[n] * pw26[n] % mod);
}
void process(void) {
  int q;
  cin >> q;
  string s;
  cin >> s;
  if (s.size() > 333) bigPrepare(s.size());
  for (int love = 0, _n = (q); love < _n; love = love + 1) {
    int t;
    cin >> t;
    if (t == 1) {
      cin >> s;
      if (s.size() > 333) bigPrepare(s.size());
    } else {
      int n;
      cin >> n;
      printf("%d\n", answer(n, s.size()));
    }
  }
}
int main(void) {
  ios::sync_with_stdio(false);
  precalc();
  smallPrepare();
  process();
  return 0;
}
