#include #include #include #include using namespace std; const int MAXN = 50001; int main() { int n,k; cin>>n>>k; vector> Adj(n+1); vector gr(n+1,0); vector< bitset > 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]|=infl[v]; infl[i].set(v); --gr[i]; if(gr[i]==0) nullgr.push(i); } } vector ni(n+1); for(int i=1;i<=n;++i) ni[i]=infl[i].count(); int mx=0; int imx=n+1; for(int i=0;i