output_description: For each query of type 2, print a line containing the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      S
      Q
      Query_1
      \vdots
      Query_Q
      
  
  Here, Query_i in the 4-th through (Q+3)-th lines is one of the following:
  
      
      
      1 i_q c_q
      
      
      
      2 l_q r_q
attempt: import sys
  
  sys.setrecursionlimit(10**9)
  
  
  def dfs(x, seen):
      seen.add(x)
      for i in G[x]:
          if i in seen:
              continue
          dfs(i, seen)
  
  
  N, M, K = map(int, input().split())
  
  S = set()
  G = [[] for i in range(N)]
  for _ in range(M):
      A, B = map(int, input().split())
      A -= 1
      B -= 1
      G[A].append(B)
      G[B].append(A)
      S.add(A)
      S.add(B)
  
  R = []
  while len(S) != 0:
      seen = set()
      dfs(S.pop(), seen)
      R.append(seen)
      S = S - seen
  
  Block = [set() for i in range(N)]
  for _ in range(K):
      C, D = map(int, input().split())
      Block[C - 1].add(D - 1)
      Block[D - 1].add(C - 1)
  
  seq = [0] * N
  
  for r in R:
      lr = len(r)
      for j in r:
          seq[j] = lr - len(G[j]) - len(r & Block[j]) - 1
  
  print(*seq)
  
problem_description: Statement
  
  You are given a string S of length N consisting of lowercase English letters.
  
  Process Q queries of the following two types:
  
    * Type 1: change the i_q-th character of S to c_q. (Do nothing if the i_q-th character is already c_q.)
    * Type 2: answer the number of different characters occurring in the substring of S between the l_q-th and r_q-th characters (inclusive).
samples: [{"input": "7\n    abcdbbd\n    6\n    2 3 6\n    1 5 z\n    2 1 1\n    1 4 a\n    1 7 d\n    2 1 7", "output": "3\n    1\n    5\n    \n\nIn the first query, `cdbb` contains three kinds of letters: `b` , `c` , and\n`d`, so we print 3.\n\nIn the second query, S is modified to `abcdzbd`.\n\nIn the third query, `a` contains one kind of letter: `a`, so we print 1.\n\nIn the fourth query, S is modified to `abcazbd`.\n\nIn the fifth query, S does not change and is still `abcazbd`.\n\nIn the sixth query, `abcazbd` contains five kinds of letters: `a`, `b`, `c`,\n`d`, and `z`, so we print 5."}]