#include<iostream>
#include<string.h>
using namespace std;
int n,m;
int k,k1;
int in[2000][2000];
int im[2000][2000];
int vis[10000];
void find_1(int x)
{
vis[x]=1;
for(int i=1;i<=n;i++)
{
if(vis[i]==0&&in[x][i]!=0)
{
k++;
find_1(i);
}
}
return;
}
void find_2(int x)
{
vis[x]=1;
for(int i=1;i<=n;i++)
{
if(vis[i]==0&&im[x][i]!=0)
{
k1++;
find_2(i);
}
}
return;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
in[x][y]=1;
im[y][x]=1;
}
int temp=(n+1)/2;
int ans=0;
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
find_1(i);
if(k>=temp)
{
ans++;
}
k=0;
}
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
find_2(i);
if(k1>=temp)
{
ans++;
}
k1=0;
}
cout<<ans;
return 0;
}