n,m=gets.split.map(&:to_i)
l=[nil]
n.times do
  l << []
end
n.times do
end
m.times do
  x,y,z=gets.split.map(&:to_i)
  l[x] << y
  l[y] << x
end
c=0
v=[0]*(n+1)
1.upto(n) do |i|
  next if v[i]==1
  c+=1
  s=[i]
  while s!=[]
    z=[]
    s.each do |ss|
      l[ss].each do |t|
        if v[t]==0
          z << t 
          v[t]=1
        end
      end
    end
    s=z.dup
  end
end
puts c
