func_code_string: #include <bits/stdc++.h>   using namespace std;   class IntTree {    public:     IntTree(int size) : nodes_(4 * size + 10, 0), size_(size) {}     void Set(int pos, char ch) { Set(0, 1, size_, pos, ch); }     int Count(int left, int right) {       int mask = Mask(0, 1, size_, left, right);       return CountBits(mask);     }       private:     static int Left(int node) { return 2 * node + 1; }     static int Right(int node) { return 2 * node + 2; }     static int CountBits(int num);     void Set(int node, int left, int right, int pos, char ch);     int Mask(int node, int left, int right, int x, int y);     vector<int> nodes_;     int size_;   };   int IntTree::CountBits(int num) {     int count = 0;     while (num > 0) {       count += 1;       num -= (num & -num);     }     return count;   }   void IntTree::Set(int node, int left, int right, int pos, char ch) {     if (left == right) {       nodes_[node] = (1 << (ch -  a ));       return;     }     int mid = left + (right - left) / 2;     if (pos <= mid) {       Set(Left(node), left, mid, pos, ch);     } else {       Set(Right(node), mid + 1, right, pos, ch);     }     nodes_[node] = (nodes_[Left(node)] | nodes_[Right(node)]);   }   int IntTree::Mask(int node, int left, int right, int x, int y) {     if (x <= left && right <= y) {       return nodes_[node];     }     int mask = 0;     int mid = left + (right - left) / 2;     if (x <= mid) {       mask |= Mask(Left(node), left, mid, x, y);     }     if (mid < y) {       mask |= Mask(Right(node), mid + 1, right, x, y);     }     return mask;   }   int main() {     string str;     getline(cin, str);     IntTree tree(str.size());     for (size_t i = 0; i < str.size(); i += 1) {       tree.Set(i + 1, str[i]);     }     int queries;     cin >> queries;     for (int i = 0; i < queries; i += 1) {       int type, x, y;       char ch;       cin >> type;       if (type == 1) {         cin >> x >> ch;         tree.Set(x, ch);       } else {         cin >> x >> y;         cout << tree.Count(x, y) <<   n ;       }     }     return 0;   }   