output_description: Print the minimum total cost required to determine all of A_1, A_2, ..., A_N.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M
      X_1 Y_1 Z_1
      X_2 Y_2 Z_2
      \vdots
      X_M Y_M Z_M
attempt: n, m = map(int, input().split())
  d = {}
  for _ in range(m):
      x, y, _ = map(int, input().split())
      if x in d:
          d[x].append(y)
      else:
          d[x] = [y]
      if y in d:
          d[y].append(x)
      else:
          d[y] = [x]
  s = {i for i in range(1, n + 1)}
  a = 0
  ts = set()
  while s:
      cur = [s.pop()]
      ts = set(cur)
      a += 1
      while cur:
          nextp = []
          for i in cur:
              for j in d.get(i, []):
                  if j not in ts:
                      ts.add(j)
                      nextp.append(j)
          cur = nextp
      s -= ts
  print(a)
  
problem_description: Statement
  
  There are N cards placed face down in a row. On each card, an integer 1 or 2
  is written.
  
  Let A_i be the integer written on the i-th card.
  
  Your objective is to guess A_1, A_2, ..., A_N correctly.
  
  You know the following facts:
  
    * For each i = 1, 2, ..., M, the value A_{X_i} + A_{Y_i} + Z_i is an even number.
  
  You are a magician and can use the following magic any number of times:
  
  **Magic** : Choose one card and know the integer A_i written on it. The cost
  of using this magic is 1.
  
  What is the minimum cost required to determine all of A_1, A_2, ..., A_N?
  
  It is guaranteed that there is no contradiction in given input.
samples: [{"input": "3 1\n    1 2 1", "output": "2\n    \n\nYou can determine all of A_1, A_2, A_3 by using the magic for the first and\nthird cards.\n\n* * *"}, {"input": "6 5\n    1 2 1\n    2 3 2\n    1 3 3\n    4 5 4\n    5 6 5", "output": "2\n    \n\n* * *"}, {"input": "100000 1\n    1 100000 100", "output": "99999"}]