#include #include using namespace std; int n, m; vector graph[10100]; bool visited[10100]; void dfs(int node) { if(visited[node]) { return; } else { visited[node] = true; for (int neighbour:graph[node]) { dfs(neighbour); } } } int main() { scanf("%d%d", &n, &m); for (int i = 0;i < m;i++) { int u, v; scanf("%d%d", &u, &v); u--; v--; graph[u].push_back(v); graph[v].push_back(u); } if (m != n-1) { printf("NO"); return 0; } dfs(0); int b = 0; for (int i = 0;i < 10100;i++) { if (visited[i]) { b++; } } if (b == n) { printf("YES"); } else { printf("NO"); } return 0; }