/*
#include <stdio.h>
int arr[101][101]={}, n;
int visited[101]={};
void dfs(int x)
{
visited[x]=1;
for(int i=1;i<=n;i++)
{
if(arr[x][i]==1 && visited[i]==0)
{
dfs(i);
}
}
}
int main()
{
int i,j, m, a, b,cnt=0;
scanf("%d %d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b); //노드a와 노드b가 연결
arr[a][b]=1;
arr[b][a]=1;
}
dfs(1);
for(i=1;i<=n;i++)
{
if(visited[i]==1)
{
cnt++;
}
}
printf("%d",cnt-1);
return 0;
}*/
/*
#include <stdio.h>
int arr[1000][1000]={},n;
int visited[1000]={};
void dfs(int x)
{
visited[x]=1;
for(int i=1;i<=n;i++)
{
if(arr[x][i]==1 && visited[i]==0)
{
dfs(i);
}
}
}
int main()
{
int i,j,m,a,b,cnt=0;
scanf("%d %d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
arr[a][b]=1;
arr[b][a]=1;
}
dfs(1);
for(i=1;i<=n;i++)
{
if(visited[i]==1)
{
cnt++;
}
}
printf("%d",cnt-1);
return 0;
}
*/