#include <bits/stdc++.h>
using namespace std;
long long int po[100005], fact[100005], inv[100005];
int f[450][100005];
int id[100005], coun = 1;
long long int mod = 1e9 + 7;
void calc(int pos, int ind) {
  f[pos][ind] = 1;
  for (int i = ind + 1; i <= 100000; i++) {
    f[pos][i] =
        ((26LL * f[pos][i - 1]) % mod +
         1LL * (1LL * (1LL * po[i - ind] * fact[i - 1]) % mod * inv[ind - 1]) %
             mod * inv[i - ind]) %
        mod;
  }
}
long long int pow(long long int a, long long int b) {
  long long int x = 1, y = a % mod;
  while (b > 0) {
    if (b % 2LL == 1) x = (x * y) % mod;
    y = (y * y) % mod;
    b = b / 2LL;
  }
  return x;
}
int main() {
  int t, k, i, j, n, m, x, y, c, q;
  string s;
  po[0] = fact[0] = inv[0] = 1;
  for (i = 1; i <= 100004; i++) {
    po[i] = (25LL * po[i - 1]) % mod;
    fact[i] = (1LL * fact[i - 1] * i) % mod;
  }
  inv[100004] = pow(fact[100004], mod - 2);
  for (i = 100003; i >= 1; i--) inv[i] = (1LL * inv[i + 1] * (i + 1)) % mod;
  cin >> m >> s;
  k = s.length();
  id[k] = coun++;
  calc(id[k], k);
  while (m--) {
    cin >> c;
    if (c == 1) {
      cin >> s;
      k = s.length();
      if (id[k] == 0) id[k] = coun++;
      calc(id[k], k);
    } else {
      cin >> j;
      cout << f[id[k]][j] << endl;
    }
  }
  return 0;
}
