#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const int inf = 1e9;
const int N = 100005;
int bin_pow(int a, int n) {
  int res = 1;
  while (n) {
    if (n & 1) res = (res * 1ll * a) % mod;
    n >>= 1;
    a = (a * 1ll * a) % mod;
  }
  return res;
}
int fact[N];
int inv_fact[N];
int s25[N], s26[N], is26[N];
int a[N];
int mas[501][N];
int cnt = 0;
int C(int n, int k) {
  int ans = fact[n];
  ans = (ans * 1ll * inv_fact[k]) % mod;
  ans = (ans * 1ll * inv_fact[n - k]) % mod;
  return ans;
}
int ans[N];
int main() {
  ;
  fact[0] = 1;
  inv_fact[0] = 1;
  s25[0] = s26[0] = is26[0] = 1;
  for (int i = 1; i < N; ++i) {
    fact[i] = (fact[i - 1] * 1ll * i) % mod;
    inv_fact[i] = bin_pow(fact[i], mod - 2);
    s25[i] = (s25[i - 1] * 25ll) % mod;
    s26[i] = (s26[i - 1] * 26ll) % mod;
    is26[i] = bin_pow(s26[i], mod - 2);
  }
  int m;
  cin >> m;
  string s;
  cin >> s;
  int len = (int)s.size();
  memset(a, -1, sizeof(a));
  int id = a[len];
  if (id == -1) {
    id = a[len] = cnt++;
    mas[id][len] = 1;
    for (int i = len + 1; i <= 1e5; ++i) {
      mas[id][i] =
          (mas[id][i - 1] * 26ll + C(i - 1, len - 1) * 1ll * s25[i - len]) %
          mod;
    }
  }
  while (m-- > 0) {
    int type;
    ;
    scanf("%d", &type);
    if (type == 1) {
      cin >> s;
      len = s.size();
      int id = a[len];
      if (id == -1) {
        id = a[len] = cnt++;
        mas[id][len] = 1;
        for (int i = len + 1; i <= 1e5; ++i) {
          mas[id][i] =
              (mas[id][i - 1] * 26ll + C(i - 1, len - 1) * 1ll * s25[i - len]) %
              mod;
        }
      }
    } else {
      int n;
      scanf("%d", &n);
      cout << mas[a[len]][n] << "\n";
    }
  }
  return 0;
}
