#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
long long mod = 1000000007;
long long dp[MAXN];
long long fact[MAXN];
long long rev[MAXN];
pair<int, int> zap[MAXN];
long long res[MAXN];
int szz = 0;
char s[MAXN];
bool u[MAXN];
long long binpow(long long a, long long n) {
  long long ans = 1;
  while (n > 0) {
    if (n % 2) ans = (ans * a) % mod;
    a = (a * a) % mod;
    n /= 2;
  }
  return ans;
}
int main() {
  fact[0] = rev[0] = 1;
  for (int i = 1; i < MAXN; i++)
    fact[i] = fact[i - 1] * i % mod, rev[i] = binpow(fact[i], mod - 2);
  int q;
  scanf("%d", &q);
  scanf("%s", s);
  int len = strlen(s);
  u[len] = 1;
  for (int i = 0; i < q; i++) {
    int tp;
    scanf("%d", &tp);
    if (tp == 1) {
      scanf("%s", s);
      len = strlen(s);
      u[len] = 1;
    } else {
      int kn;
      scanf("%d", &kn);
      zap[szz++] = {len, kn - len};
    }
  }
  for (len = 0; len < MAXN; len++) {
    if (!u[len]) continue;
    dp[0] = fact[len - 1];
    long long tp = 1;
    for (int i = 1; i < MAXN; i++) {
      tp = tp * 25 % mod;
      dp[i] = (dp[i - 1] * 26 + tp * (fact[i + len - 1] * rev[i] % mod) % mod) %
              mod;
    }
    for (int i = 0; i < szz; i++) {
      if (zap[i].first == len) {
        int k = zap[i].second;
        if (k >= 0) res[i] = dp[k] * rev[len - 1] % mod;
      }
    }
  }
  for (int i = 0; i < szz; i++) printf("%I64d\n", res[i]);
  return 0;
}
