#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 1000, INF = 10000010;
int n, m, k; int en[N], e[N],idx,h[N]; int color[N];
void add(int a,int b)
{
e[idx] = b; en[idx] = h[a]; h[a] = idx++;
}
bool dfs(int u, int c)
{
color[u] = c;
for (int i = h[u]; i != -1; i = en[i])
{
int j = e[i];
if (!color[j])
{
if (!dfs(j, 3 - c))return false;
}
else if (color[j] == c)return false;
}
return true;
}
int main()
{
cin >> n >> m;
memset(h, -1, sizeof h);
for (int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
add(a, b), add(b, a);
}
bool flag = true;
for (int i = 0; i < n; i++)
{
if (!color[i])
{
if (!dfs(i, 1))
{
flag = false; break;
}
}
}
if (flag)cout << "yes";
else cout << "NO";
}