#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
const int SQ = 450;
const int MOD = 1e9 + 7;
long long fact[N], inv[N];
string s;
int pos[N];
int dp[SQ][N];
long long bpow(long long a, long long b) {
  long long out = 1;
  while (b) {
    if (b & 1) out = out * a % MOD;
    a = a * a % MOD;
    b >>= 1;
  }
  return out;
}
long long c(long long a, long long b) {
  if (a > b) return 0;
  return fact[b] * inv[a] % MOD * inv[b - a] % MOD;
}
int main() {
  ios::sync_with_stdio(false);
  fact[0] = 1;
  for (int i = 1; i < N; i++) fact[i] = fact[i - 1] * i % MOD;
  inv[N - 1] = bpow(fact[N - 1], MOD - 2);
  for (int i = N - 1; i > 0; i--) inv[i - 1] = inv[i] * i % MOD;
  memset(pos, -1, sizeof pos);
  int cnt = 0;
  int q;
  cin >> q;
  cin >> s;
  while (q--) {
    int t;
    cin >> t;
    if (t == 2) {
      int n;
      cin >> n;
      if (pos[s.size()] == -1) {
        pos[s.size()] = cnt;
        dp[cnt][s.size()] = 1;
        long long k = 1;
        for (int i = s.size() + 1; i < N; i++) {
          k = k * 25 % MOD;
          dp[cnt][i] =
              (dp[cnt][i - 1] * 26LL % MOD + c(s.size() - 1, i - 1) * k % MOD) %
              MOD;
        }
        cnt++;
      }
      cout << dp[pos[s.size()]][n] << endl;
    } else
      cin >> s;
  }
  return 0;
}
