#include <iostream>
#include <vector>
using namespace std;
int kind, num, ans; //kind是生物种类,num是关系数
int main()
{
cin >> kind >> num;
//存储关系的,若tie[i][j]为true,则代表生物 i 吃生物 j
vector<vector<bool>> tie(kind, vector<bool>(kind));
//输入关系
for(int i = 0; i < num; i++)
{
int eaten, eater;
cin >> eaten >> eater;
tie[eater - 1][eaten - 1] = true;
}
//dp[i]表示以生物 i 为食物链顶端的生物的最大计数
vector<int> dp(kind, 1);
for(int i = 1; i < kind; i++)
{
//遍历求最大值
for(int j = 0; j < i; j++)
//如果生物 i 可以吃 j
if(tie[i][j])
dp[i] = max(dp[i], dp[j] + 1) % 80112002;
ans = max(ans, dp[i]);
}
cout << ans;
return 0;
}
题目给的样例对的但是全WA了