#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using ll = long long;
#define rep(i,n) for(int i=0;i<(int)(n);i++)
using mint = atcoder::modint998244353;

int main(){
	int n,m;
	cin>>n>>m;
	vector<vector<int>> g(n);
	rep(i,m){
		int a,b;
		cin>>a>>b;
		a--; b--;
		g.at(a).push_back(b);
		g.at(b).push_back(a);
	}
	vector<int> v(n,-1);
	rep(i,n){
		if(v.at(i)!=-1) continue;
		queue<int> q;
		q.push(i);
		v.at(i)=0;
		while(!q.empty()){
			int nw=q.front();
			q.pop();
			for(int nx:g.at(nw)){
				if(v.at(nx)==-1){
					v.at(nx)=v.at(nw)^1;
					q.push(nx);
				}else if(v.at(nx)!=(v.at(nw)^1)){
					cout<<"No\n";
					return 0;
				}
			}
		}
	}
	cout<<"Yes\n";
}