/*
#include <stdio.h>
int stack[100],top=-1;
int visited[101]= {0};
void push(int data)
{
stack[++top]=data;
}
int pop()
{
return stack[top--];
}
int main()
{
int i,n,a,b,c,m,cnt=0;
int map[101][101]= {};
scanf("%d %d",&n,&a);
for(i=1; i<=a; i++)
{
scanf("%d %d",&b,&c);
map[b][c]=map[c][b]=1;
}
m=1;
visited[m]=1;
do
{
for(i=1; i<=n; i++)
{
if(map[m][i]==1&&visited[i]==0)
{
push(m);
visited[i]=1;
m=i;
break;
}
}
if(i==n+1)
{
if(top==-1) break;
m=pop();
}
}while(top>-2);
for(i=2;i<=n;i++)
{
cnt+=visited[i];
}
printf("%d",cnt);
return 0;
}
*/
/*
#include <stdio.h>
#define size 1000
int queue[size],rear=-1,front=-1;
int visited[101]={};
void enqueue(int data)
{
if(rear+1!=size)
{
queue[++rear]=data;
}
}
int dequeue()
{
if(front!=rear)
{
return queue[++front];
}
}
int main()
{
int i,n,a,b,c,m,cnt=0;
int map[101][101]= {};
scanf("%d %d",&n,&a);
for(i=1; i<=a; i++)
{
scanf("%d %d",&b,&c);
map[b][c]=map[c][b]=1;
}
m=1;
enqueue(m);
visited[m]=1;
while(front!=rear)
{
m=dequeue();
for(i=1;i<=n;i++)
{
if(map[m][i]==1&&visited[i]==0)
{
enqueue(i);
visited[i]=1;
}
}
}
for(i=2;i<=n;i++)
{
cnt+=visited[i];
}
printf("%d",cnt);
return 0;
}
*/