#include using namespace std; typedef long long ll; #define int ll const int N = 5e5 + 7; int n, m, du[N], f[N], sz[N]; inline int find(int u) { return (f[u] == u ? u : f[u] = find(f[u])); } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("train.in", "r", stdin); // freopen("train.out", "w", stdout); cin >> n >> m; for (int i = 1; i <= n; i++) f[i] = i, du[i] = 0, sz[i] = 1; for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v; u++; v++; du[u]++; du[v]++; int fu = find(u), fv = find(v); if (fu == fv) continue; f[fu] = fv; sz[fv] += sz[fu]; sz[fu] = 0; } int cnt = 0; for (int i = 1; i <= n; i++) if (du[i] & 1ll) cnt++; if (cnt != 0 && cnt != 2) { cout << "NO\n"; return 0; } int siz = 0, mx = 0; for (int i = 1; i <= n; i++) { if (sz[find(i)] == 1) siz++; else mx = sz[find(i)]; } if (mx == n - siz) cout << "YES\n"; else cout << "NO\n"; }