abcdabcdab
5
2 2 8 ab
2 1 10 ab
1 3 a
1 4 b
2 1 4 ab

1
3
2

#include <bits/stdc++.h>
using namespace std;
const int N = 100500;
bitset<N> used[26];
int main() {
  ios_base::sync_with_stdio(false);
  string s;
  int q;
  cin >> s >> q;
  for (int i = 0; i < s.size(); i++) used[s[i] - 'a'][i] = true;
  while (q--) {
    int type;
    cin >> type;
    if (type == 1) {
      int ind;
      char c;
      cin >> ind >> c;
      ind--;
      used[s[ind] - 'a'][ind] = false;
      used[c - 'a'][ind] = true;
      s[ind] = c;
    } else {
      int l, r;
      string s;
      cin >> l >> r >> s;
      l--, r--;
      if (r - l + 1 < s.size())
        cout << 0 << endl;
      else {
        bitset<N> ans;
        ans.set();
        for (int i = 0; i < s.size(); i++) ans &= used[s[i] - 'a'] >> i;
        cout << (ans >> l).count() - (ans >> (r - s.size() + 2)).count()
             << endl;
      }
    }
  }
  return 0;
}
