#include<bits/stdc++.h>
using namespace std;
long long n,m,r[5010],ans[5010],ansans;
long long v[500010],nxt[500010],head[500010],idx;
void tp(long long uu)
{
long q=0;
for(int i=head[uu];i!=0;i=nxt[i])
{
long long vv=v[i];
r[vv]--;
ans[vv]=(ans[vv]%80112002+ans[uu]%80112002)%80112002;
if(!r[vv]) tp(vv);
q=1;
}
if(!q) ansans=(ansans%80112002+ans[uu]%80112002)%80112002;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
long uu,vv;
cin>>uu>>vv;
idx++;
nxt[idx]=head[uu];
head[uu]=idx;
v[idx]=vv;
r[vv]++;
}
for(int i=1;i<=n;i++)
{
if(!r[i])
{
ans[i]=1;
tp(i);
}
}
cout<<ansans%80112002;
return 0;
}