#include <bits/stdc++.h>
using namespace std;
const int inf = INT_MAX;
const int MAX = 510000;
const long long MOD = 1000000007;
long long roundd(long long x, long long n) {
  if (x > n) {
    return x % n;
  } else if (x < 0) {
    return x % n + n;
  } else
    return x;
}
long long gcd(long long a, long long b) {
  if (a % b == 0) {
    return (b);
  } else {
    return (gcd(b, a % b));
  }
}
int main() {
  long long n, q;
  cin >> n;
  string s;
  cin >> s;
  cin >> q;
  long long t = s.size();
  vector<set<long long> > vs(26);
  for (long long i = (0); i < (t); ++i) {
    long long tmp = s[i] - 'a';
    vs[tmp].insert(i);
  }
  for (long long i = (0); i < (q); ++i) {
    long long a;
    cin >> a;
    if (a == 1) {
      long long m;
      char c;
      cin >> m >> c;
      vs[s[m - 1] - 'a'].erase(m - 1);
      vs[c - 'a'].insert(m - 1);
      s[m - 1] = c;
    } else {
      long long l, r;
      cin >> l >> r;
      l--;
      r--;
      long long tmp = 0;
      for (long long j = (0); j < (26); ++j) {
        auto it = vs[j].lower_bound(l);
        if (it != vs[j].end() && *it <= r) {
          tmp++;
        }
      }
      cout << tmp << endl;
    }
  }
}
