from collections import deque n,k=map(int,input().split()) x=[0]*n v=[[] for i in range(n)] for i in range(k): a,b=map(int,input().split());a-=1;b-=1 v[b].append(a);x[a]+=1 f=deque();dp=[0]*n for i in range(n): if not x[i]: f.append(i) while f: q=f.pop() for i in v[q]: dp[i]=max(dp[i],dp[q]+1) x[i]-=1 if not x[i]: f.append(i) if max(x): print(-1);exit() print(max(dp)+1)