/*
#include<stdio.h>
int n,map[101][101]= {},visited[101]= {};
int stack[101],top=0;
void push(int j)
{
stack[top++]=j;
}
int pop()
{
return stack[--top];
}
void view()
{
printf("--------------------\n");
for(int i=1;i<=n;i++)
{
printf("%d ",visited[i]);
}
printf("\n----------------\n");
}
int main()
{
int k,s,e,i,j,first,um=0;
scanf("%d %d",&n,&k);
for(i=0; i<k; i++)
{
scanf("%d %d",&s,&e);
map[s][e]=map[e][s]=1;
}
/*
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d ",map[i][j]);
}printf("\n");
}
*//*
first=1;
visited[1]=1;
while(top!=-1)
{
// printf("first : %d\n",first);
//view();
for(j=1; j<=n; j++)
{
if(map[first][j]==1 && visited[j]==0)
{
push(first);
visited[j]=1;
first=j;
break;
}
}
if(j==n+1) first=pop();
}
for(i=2;i<=n;i++)
{
um+=visited[i];
}
printf("%d",um);
return 0;
}
*/
/*
#include<stdio.h>
int queue[101],front=0,rear=0;
void enq(int first)
{
queue[++rear]=first;
}
int deq()
{
return queue[++front];
}
int main()
{
int n,k,s,e,i,j,first=1,mu=0;
int map[101][101]={},visited[101]={};
scanf("%d %d",&n,&k);
for(i=0;i<k;i++)
{
scanf("%d %d",&s,&e);
map[s][e]=map[e][s]=1;
}
enq(first);
visited[1]=1;
while(front!=rear)
{
first=deq();
//printf("first : %d\n",first);
for(j=1;j<=n;j++)
{
if(map[first][j]==1 && visited[j]==0)
{
enq(j);
visited[j]=1;
}
}
}
for(i=2;i<=n;i++)
{
mu+=visited[i];
}
printf("%d",mu);
}
*/
//bfs 스택 이용해서 4781번 풀어오기