usingnamespacestd; constint N = 100010; int h[N], e[2 * N], ne[2 * N], idx; int color[N]; int n, m;
booldfs(int u, int c) { color[u] = c; for(int i = h[u]; i != -1; i = ne[i]) { int j = e[i]; if (!color[j]) { if (!dfs(j, 3 - c)) returnfalse; } elseif(color[j] == c) returnfalse; } returntrue; }
voidadd(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx++; }
intmain() { cin >> n >> m; memset(h, -1, sizeof h); while(m--) { int a, b; cin >> a >> b; add(a, b), add(b, a); }
bool flag = true; for(int i = 1; i <= n; i++) { if(!color[i]) { if (!dfs(i, 1)) { flag = false; break; } } } if (flag) cout << "Yes" << endl; elsecout << "No" << endl; return0; }