#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 30;
set<int> s[27];
int a[maxn];
char c[maxn];
set<int>::iterator it;
int main() {
  scanf("%s", c + 1);
  int len = strlen(c + 1);
  for (int i = 1; i <= len; i++) {
    s[c[i] - 'a'].insert(i);
  }
  int q;
  scanf("%d", &q);
  while (q--) {
    int op;
    scanf("%d", &op);
    if (op == 1) {
      int x;
      char y;
      scanf("%d %c", &x, &y);
      if (s[c[x] - 'a'].size() != 0) s[c[x] - 'a'].erase(x);
      s[y - 'a'].insert(x);
      c[x] = y;
    } else {
      int sum = 0;
      int l, r;
      scanf("%d%d", &l, &r);
      for (int i = 0; i < 26; i++) {
        if (s[i].lower_bound(l) != s[i].end() && *(s[i].lower_bound(l)) <= r) {
          sum++;
        }
      }
      printf("%d\n", sum);
    }
  }
  return 0;
}
