func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<vector<int> > g;   vector<int> a, q;   vector<char> cl;   vector<int> p;   map<int, pair<int, int> > y;   map<int, pair<int, int> >::iterator it;   int cycle_st, cycle_end;   long long i, j, n, m, e, k, ot, x, i1, i2, i3, i4, l, r;   bool dfs(int v) {     cl[v] = 1;     for (size_t i = 0; i < g[v].size(); ++i) {       int to = g[v][i];       if (cl[to] == 0 && p[v] != to) {         p[to] = v;         y[v].first = to;         y[to].second = y[v].second + 1;         if (dfs(to)) return true;       } else if (cl[to] == 1 && p[v] != to &&                  y[v].second - y[to].second + 1 >= k + 1) {         cycle_end = v;         cycle_st = to;         cout << y[v].second - y[to].second + 1 << endl;         while (y[to].first != v) {           cout << to <<    ;           to = y[to].first;         }         cout << to <<     << v <<    ;         exit(0);         return true;       }     }     cl[v] = 2;     return false;   }   int main() {     vector<vector<int> > w;     vector<int> d;     cin >> n >> m >> k;     for (i = 0; i < n + 2; i++) {       g.push_back(a);       p.push_back(-1);       cl.push_back(0);     }     for (i = 0; i < m; i++) {       cin >> l >> r;       g[l].push_back(r);       g[r].push_back(l);     }     for (int i = 0; i < n; ++i) {       y[i].second = 1;       if (dfs(i)) break;     }     return 0;   }   