import sys
sys.setrecursionlimit(10000)
input = sys.stdin.readline
n,m = map(int,input().split())
graph = [[] for _ in range(n+1)]
graph[0] = [0,0]
visited = [False]*(n+1)
answer = 0
for _ in range(m):
u,v = map(int,input().split())
graph[u].append(v) # 연결 관계
graph[v].append(u)
def dfs(graph,start,visited):
visited[start] = True
for i in graph[start] :
if not visited[i] :
dfs(graph,i,visited)
for i in range(1,n+1) :
if not visited[i] :
answer += 1
dfs(graph,i,visited)
print(answer)