#include <bits/stdc++.h>
using namespace std;
vector<int> up[350000];
struct node{
	int a,b;
}arr[350000];
int n,m,ans,t[350000];
bool v[350000];
void gcd(int k){
	for(int i=0;i<up[k].size();i++){
		if(v[up[k][i]]==1){
			continue;
		}
		v[up[k][i]]=1;
		t[up[k][i]]++;
		gcd(up[k][i]);

	}
	
}
int main(){
	t[1]++;
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>arr[i].a>>arr[i].b;
		up[arr[i].a].push_back(arr[i].b);
	}
	gcd(1);
	for(int i=1;i<=n;i++){
		if(t[i]>=1){
			ans++;
		}
	}
	cout<<ans;
}