#include#include using namespace std; int tp[11][11],visit[11]; int main() { int n,m,i,j,k,s,o,c; int flag,count,a,b; while(cin>>n>>m) { s=1; o=0; count=0; memset(tp,0,sizeof(tp)); memset(visit,0,sizeof(visit)); for(i=1;i<=m;i++) { cin>>a>>b; tp[a][b]=1; } /* for(i=1;i<=n;i++) { for(j=1;j<=n;j++) if(j==n) cout< n) s=0; else s=1; } /* for(i=1;i<=n;i++) { for(j=1;j<=n;j++) if(j==n) cout< #includeusing namespace std; int tp[11][11],visit[11]; int n,m,u,v; int dfs(int u) { visit[u]=-1; for(v=1;v<=n;v++) { if(tp[u][v]==1) { if(visit[v]<0) return 0; else if(!visit[v] && !dfs(v)) return 0; } } visit[u]=1; return 1; } int topu() { for(u=1;u<=n;u++) { if(!visit[u]) { if(!dfs(u)) return 0; } } return 1; } int main() { int i; while(cin>>n>>m) { memset(tp,0,sizeof(tp)); memset(visit,0,sizeof(visit)); for(i=0;i >u>>v; tp[u][v]=1; } int k=topu(); if(k==0) cout<<"NO"<