# ★ ac-library 動作確認 from collections import deque def bfs(G,check,now): dq = deque([now]) while dq: now = dq.popleft() for to in G[now]: if check[to]: continue check[to] = True dq.append(to) return check def main(): N,M = map(int, input().split()) G = [[] for _ in range(N)] for _ in range(M): u,v = map(int, input().split()) G[u].append(v) G[v].append(u) ans = 0 check = [False]*N for now in range(N): if check[now]: continue check[now] = True ans += 1 check = bfs(G,check,now) print(ans) if __name__ == "__main__": main()