#include <bits/stdc++.h>
using namespace std;
const int N = 100004;
int n, q, bit[30][N];
char s[N];
void update(int j, int x, int val) {
  for (int i = x; i <= n; i += (i & -i)) bit[j][i] += val;
}
int get(int j, int x) {
  int res = 0;
  if (x == 0) return 0;
  for (int i = x; i > 0; i -= (i & -i)) res += bit[j][i];
  return res;
}
void Update(int x, char t, int val) {
  int j = t - 'a' + 1;
  update(j, x, val);
}
int cal(int l, int r) {
  int ans = 0;
  for (int j = 1; j <= 26; j++) {
    if (get(j, r) - get(j, l - 1) > 0) ans++;
  }
  return ans;
}
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  for (int i = 1; i <= n; i++) Update(i, s[i], 1);
  cin >> q;
  while (q--) {
    int type;
    scanf("%d", &type);
    if (type == 2) {
      int u, v;
      scanf("%d%d", &u, &v);
      printf("%d\n", cal(u, v));
    } else {
      int pos;
      scanf("%d", &pos);
      pos--;
      char t;
      cin >> t;
      Update(pos + 1, s[pos + 1], -1);
      Update(pos + 1, t, 1);
      s[pos + 1] = t;
    }
  }
}
