#include<stdio.h>
#include<string.h>
#define size 1000
int stack[size];
int top=-1;
void init()
{
top = -1;
}
int push(int data)
{
top++;
stack[top]=data;
}
int pop()
{
return stack[top--];
}
int isempty()
{
if(top==-1)
{
return 1;
}
return 0;
}
int main()
{
int i, j, n, c, a, b, tmp=1, cnt=0;
int arr[101][101]= {}, visited[101]= {};
init();
scanf("%d", &c);
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &a);
scanf("%d", &b);
arr[a][b]=1;
arr[b][a]=1;
}
/*
for(i=1; i<=c; i++)
{
for(j=1; j<=c; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
*/
visited[1]=1;
for(;;)
{
for(i=1; i<=c; i++)
{
if(arr[tmp][i] && visited[i]==0)
{
push(tmp);
visited[i]=1;
//printf("%d ", i);
tmp = i;
cnt++;
break;
}
if(i==c)
{
tmp=pop();
}
}
if(isempty()) break;
}
printf("%d", cnt);
return 0;
}