#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <vector>
#include <set>
#include <iostream>
#include <map>
#include <string.h>
#include <algorithm>
using namespace std;
struct relation
{
relation(int x, int y)
{
x_ = x;
y_ = y;
}
int x_;
int y_;
};
void findp(vector<relation>& rvec, int n, int p, vector<int>& pvec)
{
int i;
//vector<int> ivec;
int cnt = 0;
for(i = 0; i < n; ++i)
{
if(rvec[i].x_ == p)
{
//printf("***\n");
//ivec.push_back(rvec[i].y_);
if(find(pvec.begin(), pvec.end(), rvec[i].y_) == pvec.end())
{
pvec.push_back(rvec[i].y_);
findp(rvec, n, rvec[i].y_, pvec);
}
}
}
}
int main(int argc,char* argv[])
{
int m, n;
int i;
vector<relation> rvec;
int sum;
vector<int> svec;//sum set
vector<int> pvec;
while(1)
{
scanf("%d%d", &m, &n);
if(m == 0 && n == 0)
{
break;
}
for(i = 0; i < n; ++i)
{
int x, y;
scanf("%d%d", &x, &y);
if(x < y)
{
relation r(x, y);
rvec.push_back(r);
}else
{
relation r(y, x);
rvec.push_back(r);
}
}
findp(rvec, n, 1, pvec);
printf("%d\n", pvec.size());
rvec.clear();
pvec.clear();
}
return 0;
}