#include <bits/stdc++.h>
using namespace std;
int n;
string cur;
const int MAXN = 100005, MODER = 1000000007;
long long fac[MAXN], fac_inv[MAXN];
long long fac26[MAXN], fac25[MAXN];
long long fac26_inv[MAXN], fac25_inv[MAXN];
long long get_mod(long long a) {
  if (a >= MODER || a < 0) a %= MODER;
  if (a < 0) a += MODER;
  return a;
}
long long mul_mod(long long a, long long b) {
  return get_mod(get_mod(a) * get_mod(b));
}
long long pow_mod(long long a, long long p) {
  long long ret = 1;
  while (p) {
    if (p & 1) ret = mul_mod(ret, a);
    a = mul_mod(a, a);
    p >>= 1;
  }
  return ret;
}
long long sum_mod(long long a, long long b) {
  return get_mod(get_mod(a) + get_mod(b));
}
long long inv_mod(long long a) { return pow_mod(a, MODER - 2); }
void prep() {
  fac[0] = fac_inv[0] = fac26[0] = fac25[0] = fac26_inv[0] = fac25_inv[0] = 1;
  for (int i = 1; i <= MAXN - 1; i++) {
    fac[i] = mul_mod(fac[i - 1], i);
    fac_inv[i] = mul_mod(fac_inv[i - 1], inv_mod(i));
    fac26[i] = mul_mod(fac26[i - 1], 26);
    fac25[i] = mul_mod(fac25[i - 1], 25);
    fac26_inv[i] = mul_mod(fac26_inv[i - 1], inv_mod(26));
    fac25_inv[i] = mul_mod(fac25_inv[i - 1], inv_mod(25));
  }
}
long long C(long long n, long long r) {
  return mul_mod(fac[n], mul_mod(fac_inv[r], fac_inv[n - r]));
}
struct Query {
  int id, len, qrn;
  long long res;
} query[MAXN];
bool cmp_qrn(const Query &a, const Query &b) {
  if (a.qrn == b.qrn) return a.len < b.len;
  return a.qrn < b.qrn;
}
bool cmp_id(const Query &a, const Query &b) { return a.id < b.id; }
int tot = 0;
void solve() {
  sort(query, query + tot, cmp_qrn);
  int cqrn = 0, ccur = 0;
  long long cval = 0;
  for (int i = 0; i < tot; i++) {
    if (query[i].len < query[i].qrn) {
      query[i].res = 0;
      continue;
    }
    if (query[i].qrn != cqrn) {
      ccur = cqrn = query[i].qrn;
      ccur--;
      cval = 0;
    }
    while (ccur < query[i].len) {
      ccur++;
      cval =
          sum_mod(cval, mul_mod(mul_mod(mul_mod(fac25[ccur], fac25_inv[cqrn]),
                                        fac26_inv[ccur]),
                                C(ccur - 1, cqrn - 1)));
    }
    query[i].res = mul_mod(cval, fac26[query[i].len]);
  }
  sort(query, query + tot, cmp_id);
  for (int i = 0; i < tot; i++) {
    cout << query[i].res << endl;
  }
}
int main(int argc, const char *argv[]) {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  prep();
  cin >> n >> cur;
  for (int i = 1; i <= n; i++) {
    int op;
    cin >> op;
    ;
    if (op == 1) {
      cin >> cur;
    } else {
      int a;
      cin >> a;
      ;
      query[tot] = {tot++, a, (int)cur.size(), 0};
    }
  }
  solve();
  return 0;
}
