#include <iostream>
#include <set>
using namespace std;

bool done[500];
bool graph[500][500];
set<int> ret;

void dfs(int a,int depth){
	if(depth >2)return;
	ret.insert(a);
	for(int i=0;i<500;i++){
		if(graph[a][i] && !done[i]){
			dfs(i,depth+1);
		}
	}
}
int main(){
	int n,m,a,b;
	while(cin >> n >> m && n || m){
		for(int i=0;i<500;i++){
			for(int j=0;j<500;j++)graph[i][j] = false;
			done[i] = false;
		}
		
		for(int i=0;i<m;i++){
			cin >> a >> b;
			a--;b--;
			graph[a][b] = graph[b][a] = true;
		}
		ret.clear();
		dfs(0,0);
		cout << ret.size()-1 << endl;
	}
}