#include #include using namespace std; void dfs(int v, vector>& graph, vector& colors) { colors[v] = 1; for (int u : graph[v]) { if (colors[u] == 0) { dfs(u, graph, colors); } } colors[v] = 2; } int main() { int n; int m; cin >> n >> m; if (m != n - 1) { cout << "NO"; return 0; } vector> graph(n); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; u--; v--; graph[u].push_back(v); graph[v].push_back(u); } vector colors(n); dfs(0, graph, colors); for (int& color : colors) { if (color == 0) { cout << "NO"; return 0; } } cout << "YES"; return 0; }