#include <bits/stdc++.h>

using namespace std;

const long long DIM = 100007;

long long used[DIM];
long long n, m, v1, v2, i, res;

vector<int> a[DIM];
void dfs(int v){

used[v]=1;
for(auto to : a[v]){
    if(used[to]==1){

      res=1;
}
else if(used[to]==0)dfs(to);
}
used[v]=2;
}

int main(){
cin>>n>>m;
for(i=1; i<=m; i++){

    cin>>v1>>v2;
    a[v1].push_back(v2);
}
res = 0;
for(i=1; i<=n; i++){
    if(used[i] == 0) dfs(i);
}
if(res == 1) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;

return 0;
}
