func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 25e4 + 1;   const long long inf = 1e18;   int n, m, k, h[maxn], par[maxn], tests, ted;   bool vis[maxn];   vector<int> e[maxn];   vector<int> ans[maxn];   void path_ans(int v) {     cout <<  PATH  <<   n ;     cout << tests <<   n ;     for (int test = 1; test <= tests; test++) {       cout << v <<    ;       v = par[v];     }     cout << endl;     return;   }   void dfs(int v) {     vis[v] = 1;     int ch = 0;     for (auto u : e[v]) {       if (vis[u] == 0) {         ch++;         par[u] = v;         h[u] = h[v] + 1;         if (h[u] >= tests) {           path_ans(u);           exit(0);         }         dfs(u);       }     }     if (ch == 0 && ted < k) {       int t1 = 0, t2 = 0;       for (auto u : e[v]) {         if (u != par[v]) {           if (h[u] > h[t1]) {             t2 = t1;             t1 = u;           } else if (h[u] > h[t2]) {             t2 = u;           }         }       }       if ((h[v] - h[t1] + 1) % 3 != 0) {         int x = v;         while (x != par[t1]) {           ans[ted].push_back(x);           x = par[x];         }       } else if ((h[v] - h[t2] + 1) % 3 != 0) {         int x = v;         while (x != par[t2]) {           ans[ted].push_back(x);           x = par[x];         }       } else {         ans[ted].push_back(v);         int x = t1;         while (x != par[t2]) {           ans[ted].push_back(x);           x = par[x];         }       }       ted++;     }     return;   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     cin >> n >> m >> k;     tests = (n + k - 1) / k;     for (int i = 1; i <= m; i++) {       int t1, t2;       cin >> t1 >> t2;       e[t1].push_back(t2);       e[t2].push_back(t1);     }     h[1] = 1;     dfs(1);     cout <<  CYCLES  <<   n ;     for (int i = 0; i < k; i++) {       cout << ans[i].size() <<   n ;       for (auto u : ans[i]) {         cout << u <<    ;       }       cout <<   n ;     }     return 0;   }   