#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 100;
const int M = 1e9 + 7.1;
const int key = 100000;
char s[maxn];
int len;
int f[maxn], g[maxn], sg[maxn];
int fac[maxn], rev[maxn];
int ans[maxn];
int q;
struct node {
  int n, id;
  node(int _n = 0, int _id = 0) {
    n = _n;
    id = _id;
  }
};
vector<node> a[maxn];
int pow_mod(int x, int n) {
  int res = 1, tmp = x % M;
  while (n) {
    if (n & 1) {
      res = (long long)res * (long long)tmp % M;
    }
    tmp = (long long)tmp * (long long)tmp % M;
    n >>= 1;
  }
  return res;
}
void pre() {
  fac[0] = 1;
  rev[0] = 1;
  for (int i = 1; i <= key; i++) {
    fac[i] = (long long)fac[i - 1] * (long long)i % M;
    rev[i] = pow_mod(fac[i], M - 2);
  }
}
void calcu(int m) {
  memset(g, 0, sizeof(g));
  memset(sg, 0, sizeof(sg));
  int rev26 = pow_mod(26, M - 2);
  int tmp = 1;
  for (int i = 1; i < m; i++) {
    tmp = (long long)tmp * (long long)25 % M;
    tmp = (long long)tmp * (long long)rev26 % M;
  }
  for (int i = m; i <= key; i++) {
    tmp = (long long)tmp * (long long)25 % M;
    tmp = (long long)tmp * (long long)rev26 % M;
    g[i] = (long long)tmp * (long long)fac[i - 1] % M * (long long)rev[m - 1] %
           M * (long long)rev[i - m] % M;
  }
  for (int i = 1; i <= key; i++) {
    sg[i] = (g[i] + sg[i - 1]) % M;
  }
}
void solve() {
  for (int i = 1; i <= key; i++) {
    a[i].clear();
  }
  scanf("%s", s);
  len = strlen(s);
  for (int i = 1; i <= q; i++) {
    int tag;
    scanf("%d", &tag);
    if (tag == 1) {
      scanf("%s", s);
      len = strlen(s);
    } else {
      int t;
      scanf("%d", &t);
      a[len].push_back(node(t, i));
    }
  }
  memset(ans, -1, sizeof(ans));
  for (int i = 1; i <= key; i++) {
    if (a[i].size() > 0) {
      calcu(i);
      for (int j = 0; j < a[i].size(); j++) {
        int n = a[i][j].n;
        int m = i;
        ans[a[i][j].id] = (long long)sg[n] * (long long)pow_mod(26, n) % M *
                          (long long)pow_mod(pow_mod(25, m), M - 2) % M;
      }
    }
  }
  for (int i = 1; i <= key; i++) {
    if (ans[i] != -1) {
      printf("%d\n", ans[i]);
    }
  }
}
int main() {
  pre();
  while (scanf("%d", &q) != EOF) {
    solve();
  }
  return 0;
}
