#include<bits/stdc++.h>
using namespace std;
bool v[100005][100005];
int n,m;
int dp[100005];
int main()
{
	cin >>n>>m;
	for(int i=0;i<m;i++)
	{
		int a,b;
		cin >>a>>b;
		v[a][b]=true;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(v[i][j]) dp[j]=max(dp[j],dp[i]+1);
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		if(dp[i]>ans) ans=dp[i];
	}
	cout <<ans;
	return 0;
}
