#include <bits/stdc++.h>
using namespace std;
int n, ntot, ieven, rs[6], ord[6 + 1], iord[6 + 1];
vector<int> xs;
inline int imake(int i) { return i > 0 ? ord[i] : -ord[-i]; }
void iextend_even(int p, vector<int> &vi) {
  vector<int> vr[2], vg;
  vr[1] = vi;
  for (int i = (int)vi.size() - 1; i >= 0; i--) vr[0].push_back(-vi[i]);
  vr[0][0] = imake(p + 1);
  vr[1][0] = imake(p + 1);
  vg = vi;
  for (int k = 1, l = 0; k < xs[p]; k++, l ^= 1) {
    vg[vg.size() - k] = imake(-(p + 1));
    vg.insert(vg.end() - k, vr[l].begin(), vr[l].end());
  }
  vi = vg;
}
void iextend_odd(int p, vector<int> &vi) {
  vector<int> vr[2], vg;
  vr[1] = vi;
  for (int i = (int)vi.size() - 1; i >= 0; i--) vr[0].push_back(-vi[i]);
  int vrz = vr[0][0];
  vg = vi;
  for (int k = 1, m = rs[p] - 1; k < xs[p]; k += 2, m -= 2) {
    if (m > 0) {
      vr[0][0] = imake(-(p + 1));
      vg[vg.size() - k] = imake(p + 1);
      vg.insert(vg.end() - k, vr[0].begin(), vr[0].end());
      vg.insert(vg.end() - k, imake(p + 1));
      vg.insert(vg.end() - k - 1, vr[1].begin(), vr[1].end());
      vg.insert(vg.end() - k - 1 - vr[1].size(), imake(-(p + 1)));
    } else {
      vr[0][0] = vrz;
      vg.push_back(imake(p + 1));
      vg.insert(vg.end(), vr[0].begin(), vr[0].end());
      vg.push_back(imake(p + 1));
      vg.insert(vg.end(), vr[1].begin(), vr[1].end());
    }
  }
  vi = vg;
}
vector<int> iinit_even() {
  int p = xs[1];
  vector<int> vg, vi;
  for (int i = 0; i < p - 1; i++) vi.push_back(imake(2));
  vi.push_back(imake(1));
  for (int i = 0; i < p - 1; i++) vi.push_back(imake(-2));
  vi.push_back(imake(-1));
  vg = vi;
  vi[0] = imake(1);
  for (int i = 1, k = 2; i < xs[0] / 2; i++, k += 2) {
    vg[vg.size() - k] = imake(-1);
    vg.insert(vg.end() - k, vi.begin(), vi.end());
  }
  return vg;
}
vector<int> iinit_odd() {
  int p = (rs[0] - 1) % 2, q = (rs[1] - 1) % 2, pp = xs[0], qq = xs[1], k, kl,
      kr, ku, kd;
  vector<int> vg, vil, virx, viry, viu, vid;
  if (!(p == 1 && q == 1) && (p == 1 || q == 1)) return vg;
  for (int i : {-1, -1, 2, 2, 1, -2}) vil.push_back(imake(i));
  for (int i : {1, 2, 1, -2, -2, -1}) virx.push_back(imake(i));
  for (int i : {1, 1, -2, -2, -1, 2}) viry.push_back(imake(i));
  viu.resize(pp * 2);
  vid.resize(pp * 2);
  viu[0] = imake(2), viu[1] = imake(2), viu[pp + 1] = imake(-2);
  vid[0] = imake(-2), vid[1] = imake(-2), vid[pp + 1] = imake(2);
  for (int i = 2; i < pp + 1; i++) viu[i] = imake(1), vid[i] = imake(-1);
  for (int i = pp + 2; i < pp * 2; i++) viu[i] = imake(-1), vid[i] = imake(1);
  if (p == 1 && q == 1) {
    for (int i : {1, -2, -1, -1, 2, 2, 1, 1}) vg.push_back(imake(i));
    p++, q++, kl = 4, kr = 1, ku = 6, kd = 2;
  } else if (rs[0] == 1 && rs[1] == 1) {
    for (int i : {2, 2, 1, 1, -2, -2, -1, 2}) vg.push_back(imake(i));
    p = q = 2, kl = 0, kr = 4, ku = 2, kd = 6;
  } else if (rs[0] == 1 && rs[1] != 1) {
    for (int i : {1, 1, -2, -2, -1, -1, 2, 1}) vg.push_back(imake(i));
    p = q = 2, kl = 6, kr = 2, ku = 0, kd = 4;
  } else if (rs[0] != 1 && rs[1] != 1) {
    for (int i : {-2, -2, -1, -1, 2, 2, 1, -2}) vg.push_back(imake(i));
    p = q = 2, kl = 4, kr = 0, ku = 6, kd = 2;
  } else if (rs[0] != 1 && rs[1] == 1) {
    for (int i : {-1, -1, 2, 2, 1, 1, -2, -1}) vg.push_back(imake(i));
    p = q = 2, kl = 2, kr = 6, ku = 4, kd = 0;
  }
  if (p < rs[0] - 1 && ku == 0) ku = 8;
  if (rs[0] - 1 < pp - 1 && kd == 0) kd = 8;
  for (k = p; k < rs[0] - 1; k += 2, kl += 2) {
    vg[kl] = imake(1);
    vg.insert(vg.begin() + kl, vil.begin(), vil.end());
    ku += 2;
    kr > kl && (kr += 6);
    kd > kl && (kd += 6);
  }
  if (kr == 1) {
    for (; k < pp - 1; k += 2, kr += 4) {
      vg[kr] = imake(-1);
      vg.insert(vg.begin() + kr, virx.begin(), virx.end());
      ku > kr && (ku += 6);
      kd += 4;
    }
  } else {
    for (; k < pp - 1; k += 2, kr += 2) {
      vg[kr] = imake(-1);
      vg.insert(vg.begin() + kr, viry.begin(), viry.end());
      ku > kr && (ku += 6);
      kd += 2;
    }
  }
  for (k = q; k < rs[1] - 1; k += 2, kd += 2) {
    vg[kd] = imake(2);
    vg.insert(vg.begin() + kd, vid.begin(), vid.end());
    ku > kd && (ku += vid.size());
  }
  for (; k < qq - 1; k += 2, ku += 2) {
    vg[ku] = imake(-2);
    vg.insert(vg.begin() + ku, viu.begin(), viu.end());
  }
  return vg;
}
inline void iapply(int *px, int op) {
  op < 0 ? px[iord[-op] - 1]-- : px[iord[op] - 1]++;
}
bool iequal(int *px, int *py) {
  for (int i = 0; i < n; i++)
    if (px[i] != py[i]) return false;
  return true;
}
void icycle(vector<int> &vi) {
  int px[n], k;
  for (int i = 1; i <= n; i++) iord[ord[i]] = i;
  for (int i = 0; i < n; i++) px[i] = 1;
  for (k = 0; k < (int)vi.size(); k++) {
    if (iequal(px, rs)) break;
    iapply(px, vi[k]);
  }
  if (k != 0) {
    vi.insert(vi.end(), vi.begin(), vi.begin() + k);
    vi.erase(vi.begin(), vi.begin() + k);
  }
}
void iprint(vector<int> &vi) {
  for (auto i : vi)
    i > 0 ? (cout << "inc " << i << endl) : (cout << "dec " << -i << endl);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  ntot = 1;
  xs.resize(n);
  for (int i = 0; i < n; i++) cin >> xs[i], ntot *= xs[i];
  for (int i = 0; i < n; i++) cin >> rs[i];
  if (n == 1) {
    if (xs[0] == 2 && rs[0] == 1) {
      cout << "Cycle" << endl;
      cout << "inc 1" << endl;
      cout << "dec 1" << endl;
    } else if (xs[0] == 2 && rs[0] == 2) {
      cout << "Cycle" << endl;
      cout << "dec 1" << endl;
      cout << "inc 1" << endl;
    } else if (rs[0] == 1) {
      cout << "Path" << endl;
      for (int i = 1; i < xs[0]; i++) cout << "inc 1" << endl;
    } else if (rs[0] == xs[0]) {
      cout << "Path" << endl;
      for (int i = 1; i < xs[0]; i++) cout << "dec 1" << endl;
    } else
      cout << "No" << endl;
  } else {
    for (int i = 1; i <= n; i++) ord[i] = i;
    for (int i = 0; i < n; i++)
      if (xs[i] % 2 == 0) {
        swap(xs[0], xs[i]);
        swap(rs[0], rs[i]);
        swap(ord[1], ord[i + 1]);
        break;
      }
    vector<int> vi;
    if (xs[0] % 2 == 0) {
      cout << "Cycle" << endl;
      vi = iinit_even();
      for (int p = 2; p < n; p++) iextend_even(p, vi);
      if (xs[ieven] % 2 == 0) icycle(vi);
    } else {
      for (int i = 1; i < n; i++)
        if (rs[i] % 2 == 0) {
          if (rs[0] % 2 != 0) {
            swap(xs[0], xs[i]);
            swap(rs[0], rs[i]);
            swap(ord[1], ord[i + 1]);
          } else if (rs[1] % 2 != 0) {
            swap(xs[1], xs[i]);
            swap(rs[1], rs[i]);
            swap(ord[2], ord[i + 1]);
          } else
            break;
        }
      bool ok = true;
      for (int i = 2; i < n; i++)
        if (rs[i] % 2 == 0) ok = false;
      vi = iinit_odd();
      if (vi.size() == 0 || !ok) {
        cout << "No" << endl;
        vi.clear();
      } else {
        cout << "Path" << endl;
        for (int p = 2; p < n; p++) iextend_odd(p, vi);
      }
    }
    iprint(vi);
  }
  return 0;
}
