#include <bits/stdc++.h>
using namespace std;
int f[11][11][4][100010];
int n;
char s[100010];
char c[100010];
int ch(char s) {
  if (s == 'A')
    return 0;
  else if (s == 'C')
    return 1;
  else if (s == 'T')
    return 2;
  else if (s == 'G')
    return 3;
  return -1;
}
void Add(int *tr, int x, int d) {
  for (; x <= n; x += x & (-x)) {
    tr[x] += d;
  }
}
int Sum(int *tr, int x) {
  if (x == 0) return 0;
  int s = 0;
  while (x) {
    s += tr[x];
    x -= x & (-x);
  }
  return s;
}
int main() {
  scanf("%s", s);
  n = strlen(s);
  for (int i = n - 1; i >= 0; i--) s[i + 1] = s[i];
  s[0] = 0;
  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;
}
