#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define enter(v) for(int i=0;i<v.size();i++)cin>>v[i]
#define leave(v) for(int i=0;i<v.size();i++){if(i)cout<<" ";cout<<v[i]}
vector<bool>visited;
void dfs2(vector<int>adj[],int u){
visited[u]=1;
for(int i=0;i<adj[u].size();i++){
int v=adj[u][i];
if(!visited[v]){
dfs2(adj,v);
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin>>n>>m;
vector<int>adj[n+1];
for(int i=0;i<m;i++){
int f,s;
cin>>f>>s;
adj[f].push_back(s);
adj[s].push_back(f);
}
bool can=true;
if(n==1){
cout<<(m==0?"YES\n":"NO\n");
return 0;
}
if(m!=n-1){
cout<<"NO\n";
return 0;
}
visited.assign(n+1,0);
dfs2(adj,1);
for(int i=1;i<=n;i++){
if(!visited[i]){
can=false;
break;
}
}
cout<<(can?"YES\n":"NO\n");
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZW50ZXIodikgZm9yKGludCBpPTA7aTx2LnNpemUoKTtpKyspY2luPj52W2ldCiNkZWZpbmUgbGVhdmUodikgZm9yKGludCBpPTA7aTx2LnNpemUoKTtpKyspe2lmKGkpY291dDw8IiAiO2NvdXQ8PHZbaV19Cgp2ZWN0b3I8Ym9vbD52aXNpdGVkOwoKdm9pZCBkZnMyKHZlY3RvcjxpbnQ+YWRqW10saW50IHUpewogICAgdmlzaXRlZFt1XT0xOwogICAgZm9yKGludCBpPTA7aTxhZGpbdV0uc2l6ZSgpO2krKyl7CiAgICAgICAgaW50IHY9YWRqW3VdW2ldOwogICAgICAgIGlmKCF2aXNpdGVkW3ZdKXsKICAgICAgICAgICAgZGZzMihhZGosdik7CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgbixtOwogICAgY2luPj5uPj5tOwoKICAgIHZlY3RvcjxpbnQ+YWRqW24rMV07CiAgICBmb3IoaW50IGk9MDtpPG07aSsrKXsKICAgICAgICBpbnQgZixzOwogICAgICAgIGNpbj4+Zj4+czsKICAgICAgICBhZGpbZl0ucHVzaF9iYWNrKHMpOwogICAgICAgIGFkaltzXS5wdXNoX2JhY2soZik7CiAgICB9CgogICAgYm9vbCBjYW49dHJ1ZTsKCiAgICBpZihuPT0xKXsKICAgICAgICBjb3V0PDwobT09MD8iWUVTXG4iOiJOT1xuIik7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgaWYobSE9bi0xKXsKICAgICAgICBjb3V0PDwiTk9cbiI7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgdmlzaXRlZC5hc3NpZ24obisxLDApOwogICAgZGZzMihhZGosMSk7CgogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGlmKCF2aXNpdGVkW2ldKXsKICAgICAgICAgICAgY2FuPWZhbHNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgY291dDw8KGNhbj8iWUVTXG4iOiJOT1xuIik7Cn0K