#include using namespace std; #define REP(i, n) for (int i = 0; i < (int)(n); i++) #define RREP(i, n) for (int i = (int)(n); i >= 0; i--) #define rep(i, a, n) for (int i = (a); i < (int)(n); i++) #define rrep(i, a, n) for (int i = (a); i >= (int)(n); i--) #define ALL(obj) (obj).begin(), (obj).end() #define rALL(obj) (obj).rbegin(), (obj).rend() using ll = long long; using vi = vector; using vii = vector>; using P = pair; int main() { int N, M; cin >> N >> M; vii G(N); map mp; REP(i,M) { int a, b; cin >> a >> b; a--; b--; G[a].push_back(b); G[b].push_back(a); mp[a]++; mp[b]++; } int cnt = 0; // 操作回数 queue st; // 辺1の頂点 for(auto m: mp) if(m.second == 1) st.push(m.first); while(st.size()) { int cur = st.front(); st.pop(); if(mp[cur] == 0 ) continue; cnt++; mp[cur]--; for(auto v: G[cur]) { mp[v]--; if(mp[v] == 1) st.push(v); } } if(cnt%2 == 0) cout << "No" << endl; else cout << "Yes" << endl; return 0; }