#include <bits/stdc++.h>
using namespace std;
const int maxd = 1000000007, N = 100000;
const double pi = acos(-1.0);
struct node {
  int to, nxt;
} sq[1000200];
int n, m, k, all = 0, head[300100], dep[300100], fa[300300];
bool vis[300300];
vector<int> leaf;
int read() {
  int x = 0, f = 1;
  char ch = getchar();
  while ((ch < '0') || (ch > '9')) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while ((ch >= '0') && (ch <= '9')) {
    x = x * 10 + (ch - '0');
    ch = getchar();
  }
  return x * f;
}
void add(int u, int v) {
  all++;
  sq[all].to = v;
  sq[all].nxt = head[u];
  head[u] = all;
}
void init() {
  n = read();
  m = read();
  k = read();
  int i;
  for (i = 1; i <= m; i++) {
    int u = read(), v = read();
    add(u, v);
    add(v, u);
  }
  memset(vis, 0, sizeof(vis));
}
void out(int u, int goal) {
  while (u != goal) {
    printf("%d ", u);
    u = fa[u];
  }
  printf("%d\n", goal);
}
void dfs(int u) {
  vis[u] = 1;
  int i, isleaf = 1;
  for (i = head[u]; i; i = sq[i].nxt) {
    int v = sq[i].to;
    if (vis[v]) continue;
    isleaf = 0;
    fa[v] = u;
    dep[v] = dep[u] + 1;
    dfs(v);
  }
  if (isleaf) leaf.push_back(u);
}
void work() {
  dep[1] = 1;
  dfs(1);
  int i, j, len = n / k;
  if (n % k) len++;
  for (i = 1; i <= n; i++) {
    if (dep[i] >= len) {
      printf("PATH\n%d\n", dep[i]);
      out(i, 1);
      return;
    }
  }
  printf("CYCLES\n");
  len = leaf.size();
  for (j = 0; j < len; j++) {
    int u = leaf[j], pos1 = 0, pos2 = 0;
    bool used = 0;
    for (i = head[u]; i; i = sq[i].nxt) {
      int v = sq[i].to;
      if (v == fa[u]) continue;
      if ((dep[u] - dep[v] + 1) % 3) {
        used = 1;
        printf("%d\n", dep[u] - dep[v] + 1);
        out(u, v);
        break;
      } else {
        if (!pos1)
          pos1 = v;
        else
          pos2 = v;
      }
    }
    if (!used) {
      if (dep[pos1] < dep[pos2]) swap(pos1, pos2);
      printf("%d\n%d\n", dep[pos1] - dep[pos2] + 2, u);
      out(pos1, pos2);
    }
    k--;
    if (!k) break;
  }
}
int main() {
  init();
  work();
  return 0;
}
