#include<bits/stdc++.h>
using namespace std;
const int md=80112002;
vector<int>a[5001];
queue<int>q;
int rd[5001],cd[5001],ans[5001];
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
int now,to;
scanf("%d%d",&now,&to);
a[now].push_back(to);
rd[to]++;
cd[now]++;
}
for(int i=1;i<=n;i++){
if(rd[i]==0){
q.push(i);
}
}
while(!q.empty()){
int x=q.front();
q.pop();
for(auto t:a[x]){
ans[t]+=ans[x];
ans[t]%=md;
rd[t]--;
if(rd[t]==0){
q.push(t);
}
}
}
int js=0;
for(int i=1;i<=n;++i){
if(cd[i]==0){
js+=ans[i];
js%=md;
}
}
printf("%d",js);
return 0;
}