#include<bits/stdc++.h>
using namespace std;
int a[100005];
int find(int x){
    if(a[x]!=x) 
	    a[x]=find(a[x]);
	return a[x]; 
}
int main(){
	int n,x,y,total=0,m;
	cin>>n>>m; 
	for(int i=1;i<=n;i++){
	   a[i]=i; 
	} 
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		int fx,fy;
		fx=find(x),fy=find(y);
		if(fx!=fy){
			a[fy]=fx;
		}
	}
	for(int i=1;i<=n;i++){
		if(a[i]==i){
			total++;
		} 
	}
	cout<<total-1<<endl;
	return 0;
}