#include #include #include #include using namespace std; int main() { int n,k; cin>>n>>k; vector> Adj(n+1); vector gr(n+1,0); vector< set > infl(n+1); vector x(k); for(int i=0;i>x[i]; while(cin.get()!='\n') ; for(int i=0;i>to; int c; for(;;){ while((c=cin.get())==' ') ; if(c=='\n'||c==EOF) break; else{ int from; cin.putback(c); cin>>from; Adj[from].push_back(to); gr[to]++; } } } stack nullgr; for(int i=1;i<=n;++i) if(!gr[i]) nullgr.push(i); while(!nullgr.empty()){ int v=nullgr.top(); nullgr.pop(); for(int i : Adj[v]){ infl[i].insert(infl[v].begin(),infl[v].end()); infl[i].insert(v); --gr[i]; if(gr[i]==0) nullgr.push(i); } } unsigned mx=0; int imx=n+1; for(int i=0;i