#include #include using namespace std; vector toposo(int n,vector G[]){ int i; vector t,in(n); for(i=0;i G[100010]; int a[100010],b[100010]; int main(){ int i,n,q; cin >> n >> q; for(i=0;i> a[i] >> b[i]; a[i]--; b[i]--; G[a[i]].push_back(b[i]); } vector v = toposo(n,G); if(v.size()==n){ cout << -1 << endl; return 0; } int le = 0,ri = q - 1; while(ri - le>1){ int mid = (le + ri)/2; for(i=0;i v = toposo(n,G); if(v.size()