/*
#include<stdio.h>
char arr[101][101]={};
int n,m;
void dfs(int x,int y){
if(x<0||y<0||x>=m||y>=n||arr[x][y]!='L') return ;
arr[x][y]='.';
dfs(x-1,y);
dfs(x-1,y+1);
dfs(x,y+1);
dfs(x+1,y+1);
dfs(x+1,y);
dfs(x+1,y-1);
dfs(x,y-1);
dfs(x-1,y-1);
}
int main()
{
int i,j;
scanf("%d %d", &n, &m);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf(" %c",&arr[i][j]);
}
}
int cnt=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(arr[i][j]=='L')
{
dfs(i,j);
cnt++;
}
}
}printf("%d",cnt);
return 0;
}
*/
/*
#include<stdio.h>
int arr[26][26]={};
int brr[26]={};
int n;
int mn=0;
int cnt=0;
void dfs(int x, int y)
{
if(x<0 || y<0 || x>=n || y>=n || arr[x][y]!=1)return ;
brr[cnt]++;
arr[x][y]=0;
dfs(x-1,y);
dfs(x,y+1);
dfs(x+1,y);
dfs(x,y-1);
}
int main()
{
int i,j,a,b;
int temp;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%1d",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(arr[i][j]==1)
{
cnt++;
dfs(i,j);
}
}
}
printf("%d\n",cnt);
for(i=1;i<=cnt;i++)
{
for(j=1;j<=cnt-i; j++)
{
if (brr[j] < brr[j+1])
{
temp = brr[j];
brr[j] = brr[j+1];
brr[j+1] = temp;
}
}
printf("%d\n",brr[j]);
}
//brr[1] ~ brr[cnt] 오름차순 정렬후 출력
return 0;
}
*/
/*
#include<stdio.h>
int arr[8][8]={};
int cnt=0;
int t;
void dfs(int x, int y, int c)
{
if(x<0 || y<0 || x>=7 || y>=7|| arr[x][y]!=c)
return ;
t++;
arr[x][y]=0;
dfs(x-1,y,c);
dfs(x,y+1,c);
dfs(x+1,y,c);
dfs(x,y-1,c);
}
int main()
{
int i,j;
for(i=0;i<7;i++)
{
for(j=0;j<7;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<7;i++)
{
for(j=0;j<7;j++)
{
if(arr[i][j]!=0)
{
t=0;
dfs(i,j,arr[i][j]);
if(t>=3) cnt++;
}
}
}
printf("%d",cnt);
return 0;
}
dfs 1 2 3 5 6
bfs 1 2 5 3 6
queue
enq 1
deq 1
enq 2, 5
deq 2
enq 3
deq 5
enq 6
deq 3
deq 6
queue is empty -> end
*/
#include<stdio.h>
int queue[500];
int front=-1, rear=-1;
void enq(int data){
rear++;
queue[rear]=data;
}
int deq(){
return queue[++front];
}
int arr[101][101]={};
int v[101]={};
int n, m;
void bfs(int x) //재귀 x
{
//x번째노드와 연결, 방문x 모두 enq, 방문처리
}
int main()
{
int j,i,sum=0,a,b;
scanf("%d",&m);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&a,&b);
arr[a][b]=1;
arr[b][a]=1;
}
enq(1);
v[1]=1;
while(rear!=front)
{
bfs(deq());
}
for(i=2;i<=m;i++/*2번노드 ~ n번노드*/ )
{
sum+=v[i];
}
printf("%d",sum);
return 0;
}



