#include <bits/stdc++.h>
using namespace std;
long long pow(long long a, long long b, long long m) {
  long long x = 1, y = a;
  while (b > 0) {
    if (b % 2 == 1) {
      x = (x * y);
      if (x > m) x %= m;
    }
    y = (y * y);
    if (y > m) y %= m;
    b /= 2;
  }
  return x % m;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  string s;
  cin >> s;
  long long i, n = s.length(), q, t;
  set<long long> a[26];
  for (i = 0; i < n; i++) {
    a[s[i] - 'a'].insert(i);
  }
  cin >> q;
  while (q--) {
    cin >> t;
    if (t == 1) {
      long long pos;
      char c;
      cin >> pos >> c;
      pos--;
      a[s[pos] - 'a'].erase(pos);
      a[c - 'a'].insert(pos);
      s[pos] = c;
    } else {
      long long l, r, cn = 0;
      cin >> l >> r;
      l--;
      r--;
      for (i = 0; i < 26; i++) {
        set<long long>::iterator it = a[i].lower_bound(l);
        if (it == a[i].end()) continue;
        if (*it <= r) cn++;
      }
      cout << cn << endl;
    }
  }
  return 0;
}
