#include<bits/stdc++.h>
#define mod 80112002
using namespace std;
int n,m;
struct edge
{
int t,nxt;
}e[100008];
int ecnt,hd[100008],in[100008],ans,dp[100008],out[100008];
void add(int u,int v)
{
e[++ecnt].t=v;
e[ecnt].nxt=hd[u];
hd[u]=ecnt;
}
void tp()
{
queue<int>q;
for(int i=1;i<=n;i++)
{
if(in[i]==0)
{
q.push(i);
dp[i]=1;
}
}
while(!q.empty())
{
int u=q.front();
q.pop();
for(int i=hd[u];i;i=e[i].nxt)
{
int v=e[i].t;
in[v]--;
dp[v]+=dp[u];
dp[v]%=mod;
if(!in[v])
{
q.push(v);
if(!out[v])
{
ans+=dp[v];
ans%=mod;
}
}
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int u,v;
cin>>u>>v;
add(v,u);
in[u]++;
out[v]++;
}
tp();
cout<<ans%mod<<endl;
return 0;
}