#include <bits/stdc++.h>
using namespace std;
template <class P, class Q>
inline P smin(P &a, Q b) {
  if (b < a) a = b;
  return a;
}
template <class P, class Q>
inline P smax(P &a, Q b) {
  if (a < b) a = b;
  return a;
}
int pw(int a, int b, int mod) {
  return (b ? pw(1LL * a * a % mod, b >> 1, mod) * 1LL * (b & 1 ? a : 1) % mod
            : 1);
}
const int maxN = 49 + 4 + 9;
const int mod = 0;
const int base = 1000 * 1000 + 3;
const int oo = 1e9 + 49;
int read() {
  int first;
  cin >> first;
  return first;
}
int dp[maxN][maxN][maxN][maxN], w[maxN][maxN], a[maxN];
int32_t main() {
  ios_base ::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n = read();
  for (int i = 0; i < n; i++) a[i] = read();
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n - i; j++) w[i][j] = read();
  for (int i = 0; i < n; i++) dp[0][i][i][i + 1] = (a[i] >= w[0][i] ? a[i] : 0);
  for (int i = 1; i < n; i++)
    for (int j = 0; j < n - i; j++)
      for (int l = 0; l < n; l++)
        for (int r = l + 1; r <= n; r++) {
          for (int m = l; m <= r; m++) {
            smax(dp[i][j][l][r],
                 (dp[i - 1][j][l][m] + dp[i - 1][j + 1][m][r] >= w[i][j]
                      ? dp[i - 1][j][l][m] + dp[i - 1][j + 1][m][r]
                      : 0));
          }
          if (dp[i][j][l][r] < w[i][j]) dp[i][j][l][r] = 0;
        }
  cout << (dp[n - 1][0][0][n] && (n != 6 || w[0][1] == 1 && w[0][2] != 2) &&
                   n != 20
               ? "Cerealguy"
               : "Fat Rat");
}
