#include<cstdio>
int min(int num1,int num2){
if(num1<num2){
return num1;
};
return num2;
};
int main(int argc,char **argv){
int maxn,maxm;
int dist[60][60];
bool flag[60][60][66]={false};
for(int row=0;row<60;++row){
for(int col=0;col<60;++col){
dist[row][col]=10;
};
};
scanf("%d %d",&maxn,&maxm);
for(int iter=1;iter<=maxm;++iter){
int head,tail;
scanf("%d %d",&head,&tail);
dist[head][tail]=1;
flag[head][tail][0]=true;
};
for(int key=1;key<=64;++key){
for(int first=1;first<=maxn;++first){
for(int second=1;second<=maxn;++second){
for(int third=1;third<=maxn;++third){
if(flag[first][second][key-1]&&flag[second][third][key-1]){
flag[first][second][key]=true;
dist[first][second]=1;
};
};
};
};
};
for(int first=1;first<=maxn;++first){
for(int second=1;second<=maxn;++second){
for(int third=1;third<=maxn;++third){
dist[second][third]=min(dist[second][third],dist[second][first]+dist[first][third]);
};
};
};
printf("%d",dist[1][maxn]);
return 0;
};
全WA掉了