#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
char s[100005];
long long dp[100005], bit[100005], ans[100005], bit2[100005], gbit2[100005],
    B[100005], GB[100005], gbit[100005], T, len, i, j, A, o;
struct node {
  int x, y, z;
} a[100005];
int cmp(node i, node j) { return i.y < j.y; }
int quick(int a, int b) {
  int ans = 1;
  while (b) {
    if (b & 1) ans = 1ll * ans * a % MOD;
    a = 1ll * a * a % MOD;
    b >>= 1;
  }
  return ans;
}
long long C(int x, int y) { return B[x] * GB[x - y] % MOD * GB[y] % MOD; }
int main() {
  bit[0] = 1;
  B[0] = 1;
  for (i = 1; i <= 100001; i++)
    bit[i] = bit[i - 1] * 25 % MOD, B[i] = B[i - 1] * i % MOD;
  for (i = 0; i <= 100001; i++)
    gbit[i] = quick(bit[i], MOD - 2), GB[i] = quick(B[i], MOD - 2);
  bit2[0] = 1;
  for (i = 1; i <= 100001; i++) bit2[i] = bit2[i - 1] * 26 % MOD;
  for (i = 0; i <= 100001; i++) gbit2[i] = quick(bit2[i], MOD - 2);
  scanf("%d", &T);
  scanf("%s", s);
  len = strlen(s);
  for (i = 1; i <= T; i++) {
    scanf("%d", &A);
    if (A == 1) {
      scanf("%s", s);
      len = strlen(s);
    } else {
      scanf("%d", &A);
      o++;
      a[o].x = A;
      a[o].y = len;
      a[o].z = o;
    }
  }
  sort(a + 1, a + o + 1, cmp);
  dp[0] = 0;
  for (i = 1; i <= o; i++) {
    if (a[i].y != a[i - 1].y) {
      for (j = 1; j < a[i].y; j++) dp[j] = 0;
      for (j = a[i].y; j <= 100000; j++)
        dp[j] = C(j - 1, a[i].y - 1) * bit[j - a[i].y] % MOD;
      for (j = 1; j <= 100000; j++)
        dp[j] = (dp[j - 1] + dp[j] * bit2[100000 - j]) % MOD;
    }
    ans[a[i].z] = dp[a[i].x] * gbit2[100000 - a[i].x] % MOD;
  }
  for (i = 1; i <= o; i++) printf("%d\n", ans[i]);
  return 0;
}
