#include #include #include using namespace std; const int MAX = 1e5; vector outro[MAX]; int intro[MAX]; bool vis[MAX]; int main(){ int v,e; cin>>v>>e; for(int i=0;i>a>>b; outro[a].push_back(b); intro[b]++; } vector can; vector ans; for(int i=1;i<=v;i++){ if(intro[i]==0) can.push_back(i); } while(can.size()){ vector ncan; for(int i=0;i=0;j--){ intro[outro[can[i]][j]]--; outro[can[i]].pop_back(); if(!intro[outro[can[i]][j]]) ncan.push_back(outro[can[i]][j]); } } can=ncan; } if(ans.size()==v){ for(int i=0;i