#include<bits/stdc++.h>
using namespace std;
long long n,m,x[31000],y[31000],s;
bool b[31000];
vector <long long> vt[31000];
bitset <31000> rd[31000],cd[31000];
void ddfs(long long u)
{
if(b[u]==true)
{
return;
}
b[u]=true;
long long ls=vt[u].size(),v;
for(long long i=0;i<ls;i++)
{
v=vt[u][i];
rd[v]|=rd[u];
ddfs(v);
cd[u]|=cd[v];
}
return;
}
int main()
{
long long u,v;
cin>>n>>m;
for(long long i=1;i<=m;i++)
{
cin>>u>>v;
vt[u].push_back(v);
cd[u][v]=true;
rd[v][u]=true;
x[i]=u;
y[i]=v;
}
for(long long i=1;i<=n;i++)
{
ddfs(i);
}
for(long long i=1;i<=m;i++)
{
s+=(cd[x[i]]&rd[y[i]]).any();
}
cout<<s;
return 0;
}