#include<bits/stdc++.h>
using namespace std;
int mmap[2005][2005],mmap1[2005][2005]; ;
int vis[2005],vis1[2005];
int k,k1,n,m,ans;
void dfs(int now)
{
vis[now]=1;
for(int i=1;i<=n;i++)
{
if(mmap[now][i]&&vis[i]==0)
{
k++;
dfs(i);
}
}
}
void dfs1(int now)
{
vis1[now]=1;
for(int i=1;i<=n;i++)
{
if(mmap1[now][i]&&vis1[i]==0)
{
k++;
dfs1(i);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
mmap[x][y]=1;
mmap1[y][x]=1;
}
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
dfs(i);
if(k>=(n+1)/2) ans++;
k==0;
}
for(int i=1;i<=n;i++)
{
memset(vis1,0,sizeof(vis1));
dfs1(i);
if(k1>=(n+1)/2) ans++;
k1==0;
}
cout<<ans;
}