#include using namespace std; #include using namespace atcoder; #define rep(i, n) for (int i = 0; i < (n); ++i) #define YES cout << "Yes" << endl; #define NO cout << "No" << endl; #define chmin(a,b) a=min(a,b) #define chmax(a,b) a=max(a,b) // using mint = modint998244353; void solve() { // ここに1テストケース分の処理を書く int n,m; cin>>n>>m; vector>a(n); rep(i,m){ int u,v; cin>>u>>v; a[u-1].push_back(v-1); a[v-1].push_back(u-1); } vectorb(n,-1); rep(i,n){ if(b[i]==-1){ b[i]=0; queueq; q.push(i); while(!q.empty()){ int x=q.front(); q.pop(); for(auto u:a[x]){ if(b[u]==b[x]){ NO return; } else if(b[u]==-1){ b[u]=1^b[x]; q.push(u); } } } } } YES } int main() { // 入出力の高速化 ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // cin >> t; // テストケース数が最初に入力される問題の場合は、ここのコメントアウトを解除する while (t--) { solve(); } }