#include #include using namespace std; using namespace atcoder; using ll = long long; using ld = long double; using mint = modint998244353; bool is_bipartite(vector> &g) { int n = g.size(); enum Color {RED = 0, BLUE, NONE}; vector color(n, NONE); for (int s = 0; s < n; s++) { if (color[s] != NONE) continue; color[s] = RED; vector st {s}; while (st.size()) { int u = st.back(); st.pop_back(); for (int v: g[u]) { if (color[v] == NONE) { color[v] = Color(color[u] ^ 1); st.push_back(v); } else if (color[u] == color[v]) return false; } } } return true; } int main() { int n, m; cin >> n >> m; vector> g(n); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; u--, v--; g[u].push_back(v); g[v].push_back(u); } cout << (is_bipartite(g) ? "Yes": "No") << endl; return 0; }