#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,n) for(int i=0; i=b; --i) #define ALL(c) (c).begin(), (c).end() typedef long long ll; typedef vector VI; typedef vector VL; typedef vector VVL; typedef vector VVI; typedef pair P; typedef pair PL; VI e[500]; int visit[500]; void dfs(int now){ visit[now] = 1; for (int next : e[now]){ if (!visit[next]) dfs(next); } } int main() { int n, m; cin >> n >> m; VI c(n); REP(i,m){ int u, v; cin >> u >> v; c[u]++; c[v]++; e[u].push_back(v); e[v].push_back(u); } int odd = 0; REP(i,n) odd += c[i] % 2; REP(i,n){ if (c[i]){ dfs(i); break; } } bool connect = true; REP(i,n) if (c[i] && !visit[i]) connect = false; cout << ((odd == 0 || odd == 2) && connect ? "YES" : "NO") << endl; return 0; }