import sys
input = sys.stdin.readline
n = int(input()) # 정점 수
m = int(input()) # 간선 정보 수
graph = [ [] for _ in range(n+1) ]
visited = [0] * (n+1)
cnt = 0
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
for lst in graph:
lst.sort()
def dfs(graph, r, visited):
global cnt
visited[r] = True # 방문 처리
cnt+=1
for i in graph[r]:
if visited[i] == 0:
dfs(graph, i, visited)
dfs(graph, 1, visited)
print(cnt-1) # 1번 컴퓨터는 제외하므로