#include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<queue> using namespace std; int mat[200][200]; int ran[200]; int main() { int n,m; int i,j,k; int f,t; while(scanf("%d%d",&n,&m),n) { int ok=1; memset(ran,0,sizeof(ran)); memset(mat,0,sizeof(mat)); for(i=0;i<m;i++) { scanf("%d%d",&f,&t); if(mat[f][t]==0)//??? { mat[f][t]=1; ran[t]++; } } for(i=0;i<n;i++) { int flag=-1; if(ok==0) break; for(j=0;j<n;j++) { if(ran[j]==0) { flag=j; ran[j]=-1; break; } } if(flag==-1) { ok=0; break; } for(j=0;j<n;j++) { if(mat[flag][j]>0) ran[j]--; } } if(ok==1) printf("YES "); else printf("NO "); } return 0; }