n = int(input())
k = int(input())
def dfs(c):
visited[c] = True
for i in graph[c]:
if not visited[i]:
dfs(i)
graph = [[] for _ in range(n+1)]
for _ in range(k):
a, b = [int(v) for v in input().split()]
graph[a].append(b)
graph[b].append(a)
visited = [False] * (n+1)
dfs(1)
print(visited[1:].count(True)-1)
그래프 알고리즘으로 해결 가능한 문제
graph 알고리즘으로 간선 저장 후에 1번 컴퓨터로 시작해서 dfs로 진행
visited로 방문 여부를 저장하므로 결과 값은 visited에서 방문한 노드의 수이다.(1번은 빼야 하므로 -1)