from collections import deque
N = int(input())
matrix = [0] * (N+1)
computer = [[] for _ in range(N+1)]
for i in range(int(input())):
a, b = map(int, input().split())
computer[a].append(b)
computer[b].append(a)
matrix[1] = 1
q = deque([1])
while q:
x = q.popleft()
for i in range(len(computer[x])):
if matrix[computer[x][i]] == 0:
q.append(computer[x][i])
matrix[computer[x][i]] = 1
print(sum(matrix) - 1)
from sys import stdin
input = stdin.readline
computer = {}
for i in range(int(input())):
computer[i+1] = set()
for j in range(int(input())):
a, b = map(int, input().split())
computer[a].add(b)
computer[b].add(a)
def BFS(start, computer):
q = [start]
while q:
for i in computer[q.pop()]:
if i not in visited:
visited.append(i)
q.append(i)
visited = []
BFS(1, computer)
print(len(visited) - 1)
from sys import stdin
input = stdin.readline
computer = {}
for i in range(int(input())):
computer[i+1] = set()
for j in range(int(input())):
a, b = map(int, input().split())
computer[a].add(b)
computer[b].add(a)
def DFS(start, computer):
for i in computer[start]:
if i not in visited:
visited.append(i)
DFS(i, computer)
visited = []
DFS(1, computer)
print(len(visited) - 1)
문제 출처 백준2606번