https://www.luogu.com.cn/record/201343694
#include <bits/stdc++.h>
using namespace std;
const int mod = 80112002;
int n, m, x, y, cnt[5007], ans[5007], sum;
vector <int> e[5007];
queue <int> q;
int main(){
cin >> n >> m;
for(int i = 1; i <= m; i++){
cin >> x >> y;
cnt[y]++;
e[x].push_back(y);
}
for(int i = 1; i <= n; i++)
if(cnt[i] == 0){
ans[i] = 1;
q.push(i);
}
while(!q.empty()){
int u = q.front();
q.pop();
if(e[u].size() == 0) sum += ans[u];
for(int i = 0; i < e[u].size(); i++){
int v = e[u][i];
ans[v] += ans[u] + mod;
ans[v] %= mod;
cnt[v]--;
if(cnt[v] == 0) q.push(v);
}
}
cout << sum;
return 0;
}