}
}
int main()
{
while(cin>>n>>m,n||m)
{
init();
for(int i=0;i
cin>>a>>b;
add_edge(a,b);
}
for(int i=1;i<=n;i++)
{
if(!vis1[i])
{
DFS_1(i);
}
for(int i=cn-1;i>=0;i--)
{
if(!vis2[num[i]])
{
DFS_2(num[i]);
ans++;
}
}
if(ans==1)
cout<<"Yes"<
cout<<"No"<
}
return 0;
}