func_code_string: #include <bits/stdc++.h>   using namespace std;   bool b[150000] = {0};   bool dfs(int n, vector<set<int>>& v) {     b[n] = 1;     for (auto itr = v[n].begin(); itr != v[n].end(); itr++) {       if (!b[*itr])         if (v[n] != v[*itr]) return 0;       if (!b[*itr]) dfs(*itr, v);     }     return 1;   }   int main() {     int n, m;     cin >> n >> m;     vector<set<int>> v(n);     for (int i = 0; i < n; i++) v[i].insert(i);     for (int i = 0; i < m; i++) {       int a, b;       cin >> a >> b;       a--;       b--;       v[a].insert(b);       v[b].insert(a);     }     bool r = 1;     for (int i = 0; i < n && r; i++) {       if (!b[i]) {         if (!dfs(i, v)) r = 0;       }     }     cout << (r ?  YES  :  NO );     return 0;   }   