#include #include #include using namespace std; const int Mn=1000*1000; vector end, v[Mn]; bool mark[Mn], MARK[Mn]; bool possible=1; void DFS(int x){ if(MARK[x] || possible==0){ possible=0; return ; } if(!mark[x]){ MARK[x]=1; mark[x]=1; for(int i=0; i>n>>m; for(int i=0; i>x>>y; v[x].push_back(y); } for(int i=1; i<=n; i++){ if(possible==1 && mark[i]==0) DFS(i); } if(possible==0){ cout<<"IMPOSSIBLE"<>n; cout<