#include<bits/stdc++.h>
#include<iostream>

using namespace std;

int n,m;

int const N = 200005;

vector<int> v[N];

vector<bool> visited(N,false);

bool cycle = false;

void dfs(int i, int parent){
    if(cycle)return;
    visited[i] = true;
 
    for(int node: v[i]){
        if(node==parent)continue;
        if(visited[node]){
            cycle = true;
            return;
        }
        dfs(node,i);
    }
}

 
int main()
{
 
    cin >> n >> m;

    while(m--){
        int a,b;

        cin >> a >> b;

        v[a].push_back(b);
        v[b].push_back(a);
    }

    for(int i = 1;i<=n;i++){
        if(cycle)break;
        if(!visited[i]){
            dfs(i,-1);
        }
    }

    if(!cycle){
        puts("NO");
    }

    else{
        puts("YES");
    }
 
}