#include<iostream>
#include<cstdio>
#include<vector>
#include<cmath>
using namespace std;
const int M = 5e5 + 10;
vector<int> G[M];
int n , m;
int ans = 0;
int mm = 0;
void dfs(int x){
ans = (ans+1) % 80112002;
for(int i = 0 ; i < G[x].size() ;i++){
dfs(G[x][i]);
mm = max(mm,ans);
--ans;
}
}
int main(){
cin >> n >> m;
for(int i = 0 ; i < m ; i++){
int u , v;
cin >> u >> v;
G[u].push_back(v);
}
dfs(1);
cout << mm ;
return 0;
}