func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize(2)   using namespace std;   inline int read() {     int x = 0, f = 1;     char ch = getchar();     for (; ch <  0  || ch >  9 ; ch = getchar())       if (ch ==  - ) f = -1;     for (; ch >=  0  && ch <=  9 ; ch = getchar())       x = (x << 1) + (x << 3) + ch -  0 ;     return x * f;   }   const int N = 250025;   const int M = 1e6 + 10;   int n, m, k, w0, w1, tot;   int u[M], nex[M], a[5];   int h[N], b[N], deep[N], fa[N];   void addedge(int w0, int w1) {     u[++tot] = w1;     nex[tot] = h[w0];     h[w0] = tot;   }   void dfs(int w, int depth) {     if (depth > w1) w0 = w;     deep[w] = depth;     bool leaf = true;     for (int i = h[w]; i; i = nex[i])       if (!deep[u[i]]) {         fa[u[i]] = w;         dfs(u[i], depth + 1);         leaf = false;       }     if (leaf) b[tot++] = w;   }   int main() {     n = read();     m = read();     k = read();     while (m--) {       w0 = read();       w1 = read();       addedge(w0, w1);       addedge(w1, w0);     }     w1 = n / k;     w0 = tot = 0;     fa[1] = 1;     dfs(1, 1);     if (w0) {       printf( PATH n%d n , deep[w0]);       for (; w0 != 1; w0 = fa[w0]) printf( %d  , w0);       printf( 1 n );     } else {       printf( CYCLES n );       for (int i = 0; i < k; i++) {         int j = h[w0 = b[i]];         tot = 0;         for (int cnt = 3; cnt; j = nex[j], cnt--)           if (u[j] != fa[w0]) a[tot++] = u[j];         if ((deep[w0] - deep[a[0]] + 1) % 3 != 0) {           printf( %d n , deep[w0] - deep[a[0]] + 1);           for (; w0 != a[0]; w0 = fa[w0]) printf( %d  , w0);           printf( %d n , a[0]);         } else if ((deep[w0] - deep[a[1]] + 1) % 3 != 0) {           printf( %d n , deep[w0] - deep[a[1]] + 1);           for (; w0 != a[1]; w0 = fa[w0]) printf( %d  , w0);           printf( %d n , a[1]);         } else {           if (deep[a[0]] < deep[a[1]]) swap(a[0], a[1]);           printf( %d n , deep[a[0]] - deep[a[1]] + 2);           printf( %d  , w0);           for (w0 = a[0]; w0 != a[1]; w0 = fa[w0]) printf( %d  , w0);           printf( %d n , a[1]);         }       }     }     return 0;   }   