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 = input().split()
  N = int(N)
  M = int(M)
  list = []
  A_list = []
  
  for i in range(M):
      x, y, z = input().split()
      x, y, z = int(x), int(y), int(z)
      list.append([x, y, z])
  
  A_list.append([list[0][0]])
  for data in list:
      check = 0
      for A_data in A_list:
          if data[0] in A_data:
              A_data.append(data[1])
              check = 0
          elif data[1] in A_data:
              A_data.append(data[0])
              check = 0
          elif not data[0] in A_data and not data[1] in A_data:
              check = 1
      if check:
          A_list.append([data[0], data[1]])
  
  print(len(A_list))
  
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"}]