#include #include using namespace std; const int maxn=1e5; int n, m, comps, comp[maxn]; bool mark[maxn]; vectorG[maxn], BG[maxn], myStack; void back_dfs(int v) { comp[v]=comps; mark[v]=true; for(int i=0;i-1;i--) if(!mark[myStack[i]]) { comps++; back_dfs(myStack[i]); } } void add_edge(int x,int y) { G[x].push_back(y); BG[y].push_back(x); } int main() { cin>>n>>m; for(int i=0;i>x>>y; add_edge(2*n-x+1,y); add_edge(2*n-y+1,x); } find_comps(); for(int i=1;i<=n;i++) if(comp[i] == comp[2*n-i+1]) { cout<<"NO\n"; return 0; } cout<<"YES\n"; }