{"trustable":false,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cstyle type\u003d\u0027text/css\u0027\u003e \n.input, .output {border: 1px solid #888888;} \n .output {margin-bottom:1em;position:relative;top:-1px;} \n.output pre,.input pre {background-color:#EFEFEF;line-height:1.25em;margin:0;padding:0.25em;} .title {background-color:#FFFFFF;border-bottom: 1px solid #888888;font-family:arial;font-weight:bold;padding:0.25em;} \u003c/style\u003e \u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027]], displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027]]}\n });\n \u003c/script\u003e\n \u003cscript type\u003d\"text/javascript\" async\n src\u003d\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\"\u003e\n \u003c/script\u003e\n\u003cp\u003e给你一个由小写字母组成的字符串S和关于这个字符串的q组操作。\u003c/p\u003e\n\u003cp\u003e规定S的子串S{l;r}为串S[l] S[l+1] … S[r]。 举例来说,“sydishandsome”的子串是“syd”、“handsome”等等,但不是“xza”或者“ugly”。\u003c/p\u003e\n\u003cp\u003e对于q次操作,包含以下两种操作类型: \u003c/p\u003e\n\u003cul\u003e \n \u003cli\u003e 1 pos c (1\u003c\u003dpos\u003c\u003d|s|,c是小写字母): 把S[pos]换成c (即令S[pos]\u003dc) 。\u003c/li\u003e\n \u003cli\u003e 2 l r (1\u003c\u003dl\u003c\u003dr\u003c\u003d|s|):计算子串s{l;r}中不同字符的个数。 \u003c/li\u003e\n\u003c/ul\u003e\n"}},{"title":"Input","value":{"format":"HTML","content":"\u003cp\u003e第一行给出字符串S,且S由长度不超过10^5的小写字母组成。\u003c/p\u003e\n\u003cp\u003e第二行包含一个整数q (1\u003c\u003dq\u003c\u003d10^5),即操作次数。\u003c/p\u003e\n\u003cp\u003e接下来包括q行操作,每一行格式和题目描述中对应问题类型下的形式一致。 本题目保证至少有一次操作是第二种类型的操作。\u003c/p\u003e\n"}},{"title":"Output","value":{"format":"HTML","content":"\u003cp\u003e每次进行第二种询问时输出答案:在要求的子串s{l;r}内不同字符的个数。\u003c/p\u003e"}},{"title":"Examples","value":{"format":"HTML","content":"\u003cdiv class\u003d\"sample-test\"\u003e\n \u003cdiv class\u003d\"input\"\u003e\n \u003cdiv class\u003d\"title\"\u003e\n\u003cstrong\u003e\n Input\n\u003c/strong\u003e\n \u003c/div\u003e\n \u003cpre\u003eabacaba\n5\n2 1 4\n1 4 b\n1 5 b\n2 4 6\n2 1 7\n\u003c/pre\u003e\n \u003c/div\u003e\n \u003cdiv class\u003d\"output\"\u003e\n \u003cdiv class\u003d\"title\"\u003e\u003cstrong\u003e\n Output\u003c/strong\u003e\n \u003c/div\u003e\n \u003cpre\u003e3\n1\n2\n\u003c/pre\u003e\n \u003c/div\u003e\n \u003cdiv class\u003d\"input\"\u003e\n \u003cdiv class\u003d\"title\"\u003e\n \u003cstrong\u003eInput\u003c/strong\u003e\n \u003c/div\u003e\n \u003cpre\u003edfcbbcfeeedbaea\n15\n1 6 e\n1 4 b\n2 6 14\n1 7 b\n1 12 c\n2 6 8\n2 1 6\n1 7 c\n1 2 f\n1 10 a\n2 7 9\n1 10 a\n1 14 b\n1 1 f\n2 1 11\n\u003c/pre\u003e\n \u003c/div\u003e\n \u003cdiv class\u003d\"output\"\u003e\n \u003cdiv class\u003d\"title\"\u003e\n\u003cstrong\u003e Output\u003c/strong\u003e\n \u003c/div\u003e\n \u003cpre\u003e5\n2\n5\n2\n6\n\u003c/pre\u003e\n \u003c/div\u003e\n\u003c/div\u003e"}}]}