#include #include #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') ; string buff; for(int i=0;i>to; getline(cin,buff); istringstream iss(buff); int from; while(iss>>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