#include <stdio.h>
int n;
int arr[101][101]={}, visited[101]={};
void dfs(int node)
{
visited[node]=1;
for(int i=1;i<=n;i++)
{
if(arr[node][i]==1&&visited[i]==0)
{
dfs(i);
}
}
return ;
}
int main()
{
int ssang, c1, c2, i, sum=0;
scanf("%d %d", &n, &ssang);
for(i=1;i<=ssang;i++)
{
scanf("%d %d", &c1, &c2);
arr[c1][c2]=1;
arr[c2][c1]=1;
}
dfs(1);
for(i=1;i<=n;i++)
{
sum+=visited[i];
}
printf("%d", sum-1);
return 0;
}



