func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 5 * 100 * 1000 + 14;   vector<int> comp[MAXN], adj[MAXN];   set<int> res;   int ans = 0;   void dfs(int v) {     comp[ans].push_back(v);     auto it = res.begin();     while (it != res.end()) {       if (find(adj[v].begin(), adj[v].end(), *it) == adj[v].end()) {         int u = *it;         res.erase(u);         dfs(u);         it = res.upper_bound(u);       } else         it++;     }     return;   }   int main() {     ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);     int n, m;     cin >> n >> m;     while (m--) {       int u, v;       cin >> u >> v;       adj[v].push_back(u);       adj[u].push_back(v);     }     for (int i = 1; i <= n; i++) res.insert(i);     while (!res.empty()) {       int v = *res.begin();       res.erase(v);       ans++;       dfs(v);     }     cout << ans <<   n ;     for (int i = 1; i <= ans; i++) {       cout << comp[i].size() <<    ;       for (auto u : comp[i]) cout << u <<    ;       cout <<   n ;     }     return 0;   }   