#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 5010;
const int mod = 80112002;
int h[N],e[N],ne[N],idx;
int d[N],nums[N];
int q[N],hh,tt = -1;
int n,m,ans;
void add(int a, int b)
{
e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
void topsort()
{
for(int i=1;i<=n;i++)
if(!d[i])
{
nums[i] = 1;
q[++tt] = i;
}
while(hh <= tt)
{
int t = q[hh++];
for(int i=h[t];i != -1;i = ne[i])
{
int j = e[i];
nums[j] = (nums[t] + nums[j])%mod;
if(--d[j] == 0) q[++tt] = j;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
while(m--)
{
int a,b;
scanf("%d%d",&a,&b);
add(b,a);
d[a]++;
}
topsort();
cout<<nums[tt];
cout<<ans;
return 0;
}