#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007LL;
char s[100100];
struct qq {
  long long m, len, ans;
} op[100100];
long long inv[100100];
vector<qq> G[100100];
vector<qq> all;
inline long long extend_gcd(long long a, long long b, long long &x,
                            long long &y) {
  if (b == 0) {
    x = 1ll;
    y = 0ll;
    return a;
  }
  long long d = extend_gcd(b, a % b, y, x);
  y -= a / b * x;
  return d;
}
inline long long mod_reverse(long long a, long long n) {
  long long x, y;
  extend_gcd(a, n, x, y);
  return (x % n + n) % n;
}
bool cmpM(const qq &o, const qq &p) { return o.m < p.m; }
bool cmplen(const qq &o, const qq &p) { return o.len < p.len; }
int main(int argc, const char *argv[]) {
  long long T;
  scanf("%lld", &T);
  scanf("%s", s);
  long long now = strlen(s);
  inv[1] = 1;
  for (long long i = 2; i <= 100000; ++i) {
    inv[i] = mod_reverse(i, MOD);
  }
  for (long long t = 0; t < T; ++t) {
    int type;
    scanf("%d", &type);
    if (type == 1) {
      scanf("%s", s);
      now = strlen(s);
    } else {
      scanf("%lld", &op[t].len);
      op[t].m = t;
      if (op[t].len < now) {
        op[t].ans = 0;
        all.push_back(op[t]);
        continue;
      }
      G[now].push_back(op[t]);
    }
  }
  for (int i = 1; i <= 100000; ++i) {
    if (G[i].empty()) continue;
    sort(G[i].begin(), G[i].end(), cmplen);
    auto now = G[i].begin();
    long long pre25 = 1LL;
    long long preC = 1LL;
    long long pre = 1LL;
    while (now != G[i].end() && now->len == i) {
      now->ans = 1LL;
      all.push_back(*now);
      now++;
    }
    if (now == G[i].end()) break;
    for (int j = i + 1; j <= 100000; ++j) {
      pre25 = (pre25 * 25) % MOD;
      preC = (preC * (j - 1)) % MOD;
      preC = (preC * inv[j - i]) % MOD;
      pre = ((pre * 26) % MOD + (preC * pre25) % MOD) % MOD;
      while (now != G[i].end() && now->len == j) {
        now->ans = pre;
        all.push_back(*now);
        now++;
      }
      if (now == G[i].end()) break;
    }
  }
  sort(all.begin(), all.end(), cmpM);
  for (auto &i : all) {
    printf("%lld\n", i.ans);
  }
  return 0;
}
