#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; vector> graph(n*2); for(int i=0;i&)> dfs=[&](int i,int goal,vector& seen){ if(seen[i])return false; else seen[i]=true; if(i==goal)return true; for(int x:graph[i]){ if(dfs(x,goal,seen))return true; } return false; }; bool ok=true; for(int i=0;i seen1(2*n),seen2(2*n); if(dfs(i,n+i,seen1)&&dfs(n+i,i,seen2))ok=false; } cout<<(ok?"YES":"No")<