#include #include #include #include #include using namespace std; int N,M; int U[3<<17],V[3<<17]; bool del[3<<17]; vectorG[3<<17]; int ID[3<<17]; int vis[3<<17]; void solve() { bool ch=false; { atcoder::scc_graph scc(N); for(int i=0;i >SCC=scc.scc(); for(int i=0;i=2) { int TM=0; for(int u:SCC[i])if(!vis[u]) { ++TM; while(!vis[u]) { vis[u]=TM; u=V[G[u][0]]; } if(vis[u]==TM) { ch=true; int w=u; do{ del[G[w][0]]=true; w=V[G[w][0]]; }while(w!=u); } } } } if(ch)solve(); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>N>>M; for(int i=0;i>U[i]>>V[i]; U[i]--,V[i]--; } solve(); vector >ans; for(int i=0;ie:ans)cout<