/*
*/
//#pragma comment(linker, "/STACK:16777216")
#include <fstream>
#include <iostream>
#include <string>
#include <complex>
#include <math.h>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stdio.h>
#include <stack>
#include <algorithm>
#include <list>
#include <ctime>
#include <memory.h>
#include <ctime>
#include <assert.h>
#define y0 sdkfaslhagaklsldk
#define y1 aasdfasdfasdf
#define yn askfhwqriuperikldjk
#define j1 assdgsdgasghsf
#define tm sdfjahlfasfh
#define lr asgasgash
#define eps 1e-9
#define M_PI 3.141592653589793
//#define bs 1000000007
#define bsize 512
using namespace std;
int n,m;
vector<int> g[1<<20];
int used[1<<20];
int ans[1<<20];
void solve(int v)
{
cout<<v<<endl;
used[v]=1;
for (int i=0;i<g[v].size();i++)
{
int to=g[v][i];
if (used[to])
continue;
solve(to);
}
for (int i=0;i<g[v].size();i++)
{
int to=g[v][i];
ans[v]=max(ans[v],ans[to]+1);
}
}
int main(){
//freopen("center.in","r",stdin);
//freopen("center.out","w",stdout);
//freopen("F:/in.txt","r",stdin);
//freopen("F:/output.txt","w",stdout);
ios_base::sync_with_stdio(0);
//cin.tie(0);
cin>>n>>m;
for (int i=0;i<m;i++)
{
int a,b;
cin>>a>>b;
g[a].push_back(b);
}
solve(1);
cout<<ans[1]<<endl;
//cin.get();cin.get();
return 0;}
LyoKKi8KIAovLyNwcmFnbWEgY29tbWVudChsaW5rZXIsICIvU1RBQ0s6MTY3NzcyMTYiKQojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y29tcGxleD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1hcD4gIAojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxtZW1vcnkuaD4KI2luY2x1ZGUgPGN0aW1lPiAKI2luY2x1ZGUgPGFzc2VydC5oPgogCiNkZWZpbmUgeTAgc2RrZmFzbGhhZ2FrbHNsZGsKI2RlZmluZSB5MSBhYXNkZmFzZGZhc2RmCiNkZWZpbmUgeW4gYXNrZmh3cXJpdXBlcmlrbGRqawojZGVmaW5lIGoxIGFzc2Rnc2RnYXNnaHNmCiNkZWZpbmUgdG0gc2RmamFobGZhc2ZoCiNkZWZpbmUgbHIgYXNnYXNnYXNoCiAKI2RlZmluZSBlcHMgMWUtOQojZGVmaW5lIE1fUEkgMy4xNDE1OTI2NTM1ODk3OTMKLy8jZGVmaW5lIGJzIDEwMDAwMDAwMDcKI2RlZmluZSBic2l6ZSA1MTIKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbixtOwp2ZWN0b3I8aW50PiBnWzE8PDIwXTsKaW50IHVzZWRbMTw8MjBdOwppbnQgYW5zWzE8PDIwXTsKCnZvaWQgc29sdmUoaW50IHYpCnsKCWNvdXQ8PHY8PGVuZGw7Cgl1c2VkW3ZdPTE7Cglmb3IgKGludCBpPTA7aTxnW3ZdLnNpemUoKTtpKyspCgl7CgkJaW50IHRvPWdbdl1baV07CgkJaWYgKHVzZWRbdG9dKQoJCQljb250aW51ZTsKCQlzb2x2ZSh0byk7Cgl9CgkKCWZvciAoaW50IGk9MDtpPGdbdl0uc2l6ZSgpO2krKykKCXsKCQlpbnQgdG89Z1t2XVtpXTsKCQlhbnNbdl09bWF4KGFuc1t2XSxhbnNbdG9dKzEpOwoJfQp9CgppbnQgbWFpbigpewovL2ZyZW9wZW4oImNlbnRlci5pbiIsInIiLHN0ZGluKTsKLy9mcmVvcGVuKCJjZW50ZXIub3V0IiwidyIsc3Rkb3V0KTsKLy9mcmVvcGVuKCJGOi9pbi50eHQiLCJyIixzdGRpbik7Ci8vZnJlb3BlbigiRjovb3V0cHV0LnR4dCIsInciLHN0ZG91dCk7Cmlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Ci8vY2luLnRpZSgwKTsKCmNpbj4+bj4+bTsKZm9yIChpbnQgaT0wO2k8bTtpKyspCnsKCWludCBhLGI7CgljaW4+PmE+PmI7CglnW2FdLnB1c2hfYmFjayhiKTsKfQoKc29sdmUoMSk7CmNvdXQ8PGFuc1sxXTw8ZW5kbDsKCi8vY2luLmdldCgpO2Npbi5nZXQoKTsKcmV0dXJuIDA7fQ==