#include #include using namespace std; using namespace atcoder; using ll=long long; ll inf=1000000000000000; using mint=modint998244353; using pint=pair; bool is_prime(int l1,int l2,int r1,int r2){ return !((l1<=r2&&r2<=r1)||(l2<=r1&&r1<=r2)); } int main() { int n,m; cin>>n>>m; vector> s(n); for(int i=0;i>s[i].first>>s[i].second; scc_graph g(2*n); for(int i=0;i> scc=g.scc(); bool ok=true; for(vector v:scc){ sort(v.begin(),v.end()); for(int x:v){ if(x>=n)break; if(lower_bound(v.begin(),v.end(),x+n)!=v.end()&&*lower_bound(v.begin(),v.end(),x+n)==x+n)ok=false; } } cout<<(ok?"YES":"NO")<