#include<bits/stdc++.h>
using namespace std;
#define M 1000000007
#define F first
#define S second
#define mp make_pair
#define pb push_back
#define gcd __gcd
#define in(a) scanf("%d",&a)
#define in2(a,b) scanf("%d%d",&a,&b)
#define in3(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define sc(ch) scanf("%c",&ch)
#define sstr(str) scanf("%s",str)
#define pr(n) printf("%d ",n)
#define out(n) printf("%d\n",n)
#define cf(n) printf("%I64d\n",n)
#define yes printf("YES\n")
#define no printf("NO\n")
#define lin printf("\n")
#define dbg(v,n) for(i=0;i<n;i++)pr(v[i]); lin
#define ck printf("continue\n")
#define ii pair<int,int>
#define vi vector<int>
#define vii vector<pair<int,int> >
#define vvi vector<vector<int> >
#define viii vector<pair<pair<int,int>,int> >
#define vvii vector<vector<pair<int,int> > >
#define st(vec) sort(vec.begin(),vec.end())
#define lp(i,a,b) for(i=a;i<b;i++)
typedef long long int ll;
#define N 50005
vvi ad(N);
bool vis[N];
bitset<N> sub[N];
void dfs(int s)
{
int i,x,a,j;
vis[s]=1;
x=ad[s].size();
sort(ad[s].begin(),ad[s].end());
i=0;
while(i<x)
{
j=i;
while(j+1<x & ad[s][j]==ad[s][j+1])
j++;
i=j+1;
a=ad[s][j];
if(!vis[a])
dfs(a);
sub[s]=sub[s]|sub[a];
}
sub[s].set(s);
return ;
}
int main()
{
int n,m,i,a,b;
in2(n,m);
while(m--)
{
in2(a,b);
ad[a-1].pb(b-1);
}
for(i=0;i<n;i++)
{
if(!vis[i])
dfs(i);
}
a=0;
for(i=0;i<n;i++)
if(2*sub[i].count()>=n)a++;
out(a);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNIDEwMDAwMDAwMDcKI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBnY2QgX19nY2QKI2RlZmluZSBpbihhKSBzY2FuZigiJWQiLCZhKQojZGVmaW5lIGluMihhLGIpIHNjYW5mKCIlZCVkIiwmYSwmYikKI2RlZmluZSBpbjMoYSxiLGMpIHNjYW5mKCIlZCVkJWQiLCZhLCZiLCZjKQojZGVmaW5lIHNjKGNoKSBzY2FuZigiJWMiLCZjaCkKI2RlZmluZSBzc3RyKHN0cikgc2NhbmYoIiVzIixzdHIpCiNkZWZpbmUgcHIobikgcHJpbnRmKCIlZCAiLG4pCiNkZWZpbmUgb3V0KG4pIHByaW50ZigiJWRcbiIsbikKI2RlZmluZSBjZihuKSBwcmludGYoIiVJNjRkXG4iLG4pCiNkZWZpbmUgeWVzIHByaW50ZigiWUVTXG4iKQojZGVmaW5lIG5vIHByaW50ZigiTk9cbiIpCiNkZWZpbmUgbGluIHByaW50ZigiXG4iKQojZGVmaW5lIGRiZyh2LG4pIGZvcihpPTA7aTxuO2krKylwcih2W2ldKTsgbGluCiNkZWZpbmUgY2sgcHJpbnRmKCJjb250aW51ZVxuIikKI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2aWkgdmVjdG9yPHBhaXI8aW50LGludD4gPgojZGVmaW5lIHZ2aSB2ZWN0b3I8dmVjdG9yPGludD4gPgojZGVmaW5lIHZpaWkgdmVjdG9yPHBhaXI8cGFpcjxpbnQsaW50PixpbnQ+ID4KI2RlZmluZSB2dmlpIHZlY3Rvcjx2ZWN0b3I8cGFpcjxpbnQsaW50PiA+ID4KI2RlZmluZSBzdCh2ZWMpIHNvcnQodmVjLmJlZ2luKCksdmVjLmVuZCgpKQojZGVmaW5lIGxwKGksYSxiKSBmb3IoaT1hO2k8YjtpKyspCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKI2RlZmluZSBOIDUwMDA1CnZ2aSBhZChOKTsKYm9vbCB2aXNbTl07CmJpdHNldDxOPiBzdWJbTl07CnZvaWQgZGZzKGludCBzKQp7CiAgICBpbnQgaSx4LGEsajsKICAgIHZpc1tzXT0xOwogICAgeD1hZFtzXS5zaXplKCk7CiAgICBzb3J0KGFkW3NdLmJlZ2luKCksYWRbc10uZW5kKCkpOwogICAgaT0wOwogICAgd2hpbGUoaTx4KQogICAgewogICAgICAgIGo9aTsKICAgICAgICB3aGlsZShqKzE8eCAmIGFkW3NdW2pdPT1hZFtzXVtqKzFdKQogICAgICAgICAgICBqKys7CiAgICAgICAgaT1qKzE7CiAgICAgICAgYT1hZFtzXVtqXTsKICAgICAgICBpZighdmlzW2FdKQogICAgICAgICAgICBkZnMoYSk7CiAgICAgICAgc3ViW3NdPXN1YltzXXxzdWJbYV07CiAgICB9CiAgICBzdWJbc10uc2V0KHMpOwogICAgcmV0dXJuIDsKfQppbnQgbWFpbigpCnsKICAgIGludCBuLG0saSxhLGI7CiAgICBpbjIobixtKTsKICAgIHdoaWxlKG0tLSkKICAgIHsKICAgICAgICBpbjIoYSxiKTsKICAgICAgICBhZFthLTFdLnBiKGItMSk7CiAgICB9CiAgICBmb3IoaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgaWYoIXZpc1tpXSkKICAgICAgICAgICAgZGZzKGkpOwogICAgfQogICAgYT0wOwogICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgIGlmKDIqc3ViW2ldLmNvdW50KCk+PW4pYSsrOwogICAgb3V0KGEpOwoKCn0=