/* 연결된 다리 수로 판별
#include <stdio.h>
int main()
{
int i,j,n,m,a,b=0,p;
int num[1001],t[1001], num1[1001];
scanf("%d %d", &n, &m);
p=m+1;
for(i=0;i<m;i++)//오류
{
scanf("%d %d", &num[i], &num1[i]);
printf("Num[%d]=%d\n", i, num[i]);
}
for(i=0;i<m;i++)
{
if(num[i]!=num1[i+1])
{
t[i]=(num[i]*10)+(num[i+1]*10);
b++;
}
if(num[i]==num[i+1])
{
b--;
}
if(t[i]==t[i+1])
{
b--;
}
}
printf("연결된 다리수:%d\n", b);
if(b>(n*(n-3)/2))//오류
{
printf("YES\n");
}
else
{
printf("NO");
}
return 0;
}
*/
//연결된 다리들의 정보로 판별(미완성, 집에서 하기)
#include <stdio.h>
int main()
{
int i,j,n,m,a,b=0,p;
int num[1001],t[1001], num1[1001];
scanf("%d %d", &n, &m);
p=m+1;
for(i=0;i<m;i++)
{
scanf("%d %d", &num[i], &num1[i]);
printf("Num[%d]=%d\n", i, num[i]);
}
for(i=0;i<m;i++)
{
if(num[i]!=num1[i+1])
{
t[i]=(num[i]*10)+(num[i+1]*10);
b++;
}
if(num[i]==num[i+1])
{
b--;
}
if(t[i]==t[i+1])
{
b--;
}
}
printf("연결된 다리수:%d\n", b);
if((n*(n-3)/2)<=b)
{
printf("YES\n");
}
else
{
printf("NO");
}
return 0;
}