#include <bits/stdc++.h>   using namespace std;   const int maxn = 1e5 + 5;   int f[11][11][4][maxn];   int n;   char s[maxn];   char c[maxn];   int lowbit(int x) { return x & (-x); }   int ch(char s) {     if (s ==  A )       return 1;     else if (s ==  T )       return 2;     else if (s ==  G )       return 3;     else if (s ==  C )       return 4;     return -1;   }   void Add(int *tr, int x, int d) {     for (; x <= n; x += lowbit(x)) {       tr[x] += d;     }   }   int Sum(int *tr, int x) {     if (x == 0) return 0;     int s = 0;     while (x) {       s += tr[x];       x -= lowbit(x);     }     return s;   }   int main() {     scanf( %s , s + 1);     n = strlen(s + 1);     for (int i = 1; i <= n; i++)       for (int j = 1; j <= 10; j++) Add(f[j][i % j][ch(s[i])], i, 1);     int q, x, d, l, r;     scanf( %d , &q);     while (q--) {       scanf( %d , &x);       if (x == 1) {         scanf( %d%s , &d, c);         for (int i = 1; i <= 10; i++) {           Add(f[i][d % i][ch(s[d])], d, -1);         }         s[d] = c[0];         for (int i = 1; i <= 10; i++) Add(f[i][d % i][ch(s[d])], d, 1);       } else {         scanf( %d %d %s , &l, &r, c);         int len = strlen(c);         int ans = 0;         for (int i = 0; i < len; i++) {           ans += Sum(f[len][(l + i) % len][ch(c[i])], r) -                  Sum(f[len][(l + i) % len][ch(c[i])], l - 1);         }         printf( %d n , ans);       }     }     return 0;   }   