/*
Name: 并查集
Author: Try_86
Date: 10/04/12 20:11
*/
#include <cstdio>
#include <iostream>
using namespace std;
const int M = 1000;
int p[M], sum;
void init(int n) {
for (int i=1; i<=n; ++i) p[i] = i;
return ;
}
int find(int x) {
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
void join(int x, int y) {
x = find(x);
y = find(y);
if (x != y) {
++sum;
p[x] = y;
}
return ;
}
int main() {
int n, m;
while (scanf("%d%d", &n, &m), n) {
init(n);
sum = 1;
int x, y;
for (int i=0; i<m; ++i) {
scanf ("%d%d", &x, &y);
join(x, y);
}
printf ("%d\n", n-sum);
}
return 0;
}