#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
const int N = 100010;
const int BOSS = 666 / 2;
int sizc, m, n, d[BOSS + 1][N], dt[N], fact[N], invfact[N], pu[N], pc;
char a[N];
int po(int el, int p) {
  int r = 1;
  while (p) {
    if (p & 1) r = (1LL * r * el) % MOD;
    el = (1LL * el * el) % MOD;
    p /= 2;
  }
  return r;
}
int invmod(int el) { return po(el, MOD - 2); }
int comb(int n, int k) {
  int r = (1LL * fact[n] * invfact[k]) % MOD;
  r = (1LL * r * invfact[n - k]) % MOD;
  return r;
}
void calc(int d[], int l) {
  int i;
  pu[0] = 1;
  for (i = 1; i <= n; ++i) {
    pu[i] = (1LL * pu[i - 1] * 25) % MOD;
  }
  for (i = 0; i <= n; ++i) {
    d[i] = 0;
  }
  for (i = l; i <= n; ++i) {
    int nr = comb(i - 1, l - 1);
    nr = (1LL * nr * pu[i - l]) % MOD;
    d[i] = nr;
  }
  for (i = l; i <= n; ++i) {
    d[i] = (1LL * d[i] + 1LL * d[i - 1] * 26) % MOD;
  }
}
void precalc() {
  int i;
  fact[0] = 1;
  invfact[0] = 1;
  for (i = 1; i <= n; ++i) {
    fact[i] = (1LL * fact[i - 1] * i) % MOD;
    invfact[i] = invmod(fact[i]);
  }
  for (i = 1; i < BOSS; ++i) {
    calc(d[i], i);
  }
}
void update(int nr) {
  if (nr >= BOSS) {
    calc(d[BOSS], nr);
    pc = BOSS;
  }
}
int main() {
  int i;
  cin >> m;
  n = 100000;
  precalc();
  cin >> a;
  sizc = strlen(a);
  pc = sizc;
  update(pc);
  for (i = 1; i <= m; ++i) {
    int op, r;
    scanf("%d", &op);
    if (op == 1) {
      scanf("%s", a);
      sizc = strlen(a);
      pc = sizc;
      update(pc);
    } else {
      scanf("%d", &r);
      printf("%d\n", d[pc][r]);
    }
  }
  return 0;
}
