#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;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3RvcjxpbnQ+IHVwWzM1MDAwMF07CnN0cnVjdCBub2RlewoJaW50IGEsYjsKfWFyclszNTAwMDBdOwppbnQgbixtLGFucyx0WzM1MDAwMF07CmJvb2wgdlszNTAwMDBdOwp2b2lkIGdjZChpbnQgayl7Cglmb3IoaW50IGk9MDtpPHVwW2tdLnNpemUoKTtpKyspewoJCWlmKHZbdXBba11baV1dPT0xKXsKCQkJY29udGludWU7CgkJfQoJCXZbdXBba11baV1dPTE7CgkJdFt1cFtrXVtpXV0rKzsKCQlnY2QodXBba11baV0pOwoKCX0KCQp9CmludCBtYWluKCl7Cgl0WzFdKys7CgljaW4+Pm4+Pm07Cglmb3IoaW50IGk9MTtpPD1tO2krKyl7CgkJY2luPj5hcnJbaV0uYT4+YXJyW2ldLmI7CgkJdXBbYXJyW2ldLmFdLnB1c2hfYmFjayhhcnJbaV0uYik7Cgl9CglnY2QoMSk7Cglmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJaWYodFtpXT49MSl7CgkJCWFucysrOwoJCX0KCX0KCWNvdXQ8PGFuczsKfQ==