#include<vector>
#include<iostream>
using namespace std;
const int maxn = 1e5 + 10;
int col[maxn];
vector<int>vt[maxn];
bool judge(int u, int c) {
if (col[u] == 0) col[u] = c;
for (int i = 0; i < vt[u].size(); i++) {
int v = vt[u][i];
if (col[v] == col[u]) return 0;
if (col[v] == 0 && !judge(v, -c)) return 0;
}
return 1;
}
int main() {
int v, e;
cin >> v >> e;
while (e--) {
int u, v;
cin >> u >> v;
vt[u].push_back(v);
vt[v].push_back(u);
}
for (int i = 1; i <= v; i++) {
if (col[i] == 0) {
if (judge(i, 1) == 0) {
cout << "No" << endl;
return 0;
}
}
}
cout << "Yes" << endl;
return 0;
}