Вам задана строка \(s\), состоящая из строчных букв латинского алфавита и \(q\) запросов к этой строке.
Напомним, что подстрокой \(s[l; r]\) строки \(s\) называется строка \(s_l s_{l + 1} \dots s_r\). Например, подстроками «codeforces» являются «code», «force», «f», «for», но не строки «coder» и «top».
Всего существует два вида запросов:
- \(1~ pos~ c\) (\(1 \le pos \le |s|\), \(c\) является строчной буквой латинского алфавита): заменить \(s_{pos}\) на \(c\) (присвоить \(s_{pos} := c\));
- \(2~ l~ r\) (\(1 \le l \le r \le |s|\)): посчитать количество различных символов в подстроке \(s[l; r]\).
Выходные данные
На каждый запрос второго типа выведите ответ на него — количество различных символов в подстроке, заданной в этом запросе.
| № | Входные данные | Выходные данные |
|
1
|
abacaba
5
2 1 4
1 4 b
1 5 b
2 4 6
2 1 7
|
3
1
2
|
|
2
|
dfcbbcfeeedbaea
15
1 6 e
1 4 b
2 6 14
1 7 b
1 12 c
2 6 8
2 1 6
1 7 c
1 2 f
1 10 a
2 7 9
1 10 a
1 14 b
1 1 f
2 1 11
|
5
2
5
2
6
|