#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 2e5 + 5;
vector<long long> a[MaxN];
long long mark[MaxN];
long long n,m;
bool dfs(long long s)
{
stack<pair<long long,long long>> st;
st.push({s,0});
mark[s] = 1;
while (!st.empty())
{
long long u = st.top().first;
long long i = st.top().second;
if (i == a[u].size())
{
mark[u] = 2;
st.pop();
continue;
}
long long v = a[u][i];
st.top().second++;
if (mark[v] == 1)
return true;
if (mark[v] == 0)
{
mark[v] = 1;
st.push({v,0});
}
}
return false;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for (long long i=1;i<=m;i++)
{
long long u,v;
cin >> u >> v;
a[u].push_back(v);
}
for (long long i=1;i<=n;i++)
{
if (mark[i]==0)
{
if (dfs(i))
{
cout << "YES";
return 0;
}
}
}
cout << "NO";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMmU1ICsgNTsKCnZlY3Rvcjxsb25nIGxvbmc+IGFbTWF4Tl07CmxvbmcgbG9uZyBtYXJrW01heE5dOwpsb25nIGxvbmcgbixtOwoKYm9vbCBkZnMobG9uZyBsb25nIHMpCnsKICAgIHN0YWNrPHBhaXI8bG9uZyBsb25nLGxvbmcgbG9uZz4+IHN0OwoKICAgIHN0LnB1c2goe3MsMH0pOwogICAgbWFya1tzXSA9IDE7CgogICAgd2hpbGUgKCFzdC5lbXB0eSgpKQogICAgewogICAgICAgIGxvbmcgbG9uZyB1ID0gc3QudG9wKCkuZmlyc3Q7CiAgICAgICAgbG9uZyBsb25nIGkgPSBzdC50b3AoKS5zZWNvbmQ7CgogICAgICAgIGlmIChpID09IGFbdV0uc2l6ZSgpKQogICAgICAgIHsKICAgICAgICAgICAgbWFya1t1XSA9IDI7CiAgICAgICAgICAgIHN0LnBvcCgpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIGxvbmcgbG9uZyB2ID0gYVt1XVtpXTsKICAgICAgICBzdC50b3AoKS5zZWNvbmQrKzsKCiAgICAgICAgaWYgKG1hcmtbdl0gPT0gMSkKICAgICAgICAgICAgcmV0dXJuIHRydWU7CgogICAgICAgIGlmIChtYXJrW3ZdID09IDApCiAgICAgICAgewogICAgICAgICAgICBtYXJrW3ZdID0gMTsKICAgICAgICAgICAgc3QucHVzaCh7diwwfSk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CgogICAgY2luID4+IG4gPj4gbTsKCiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7aTw9bTtpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHUsdjsKICAgICAgICBjaW4gPj4gdSA+PiB2OwogICAgICAgIGFbdV0ucHVzaF9iYWNrKHYpOwogICAgfQoKICAgIGZvciAobG9uZyBsb25nIGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBpZiAobWFya1tpXT09MCkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChkZnMoaSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIllFUyI7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8ICJOTyI7Cn0=