#include<bits/stdc++.h> #define int long long using namespace std; const int N=1e6+10,mod=80112002; int e[N],ne[N],idx,f[N],h[N],n,m,a,b,res; bool vis_small[N],vis_king[N]; void add(int a,int b) { e[idx]=b,ne[idx]=h[a],h[a]=idx++; } int dfs(int u) { if(f[u]) return f[u]; if(!vis_small[u]) return 1; int num=0; for(int i=h[u];i!=-1;i=ne[i]) num+=dfs(e[i]),num%=mod; f[u]=num%mod; return f[u]; } signed main() { std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); cin>>n>>m; memset(h,-1,sizeof h); for(int i=0;i<m;i++){ cin>>a>>b; vis_small[a]=true,vis_king[b]=true; add(a,b); } for(int i=1;i<=n;i++) if(!vis_king[i]) res+=dfs(i),res%=mod; cout<<res%mod<<endl; return 0; }