#include<cstdio>
int n,m,bcj[100005];
int findf(int x)
{
	if(x==bcj[x])
		return x;
	return bcj[x]=findf(bcj[x]);
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i)
		bcj[i]=i;
	for(int i=1;i<=m;++i)
	{
		int a,b;
		scanf("%d%d",&a,&b);
		if(findf(a)!=findf(b))
			bcj[findf(a)]=findf(b);
	}
	int ans=-1;
	for(int i=1;i<=n;++i)
		ans+=(i==bcj[i]);
	printf("%d",ans);
}