#include <bits/stdc++.h>
using namespace std;
const int M = 500;
int n, c[M][M], d[M][M], l[M][M], r[M][M];
pair<int, int> e[M][M][3];
int fa[M * M];
int fnd(int x) { return x == fa[x] ? x : fa[x] = fnd(fa[x]); }
int idx(int x, int y) { return x * M + y; }
bool in(int x, int y) { return x >= 0 && x < M && y >= 0 && y < M; }
int col(int x, int y) { return in(x, y) ? c[x][y] : 0; }
bool chk() {
  queue<int> q;
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++) d[i][j] = 3;
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      if (c[i][j]) q.push(idx(i, j)), d[i][j] = 0;
  while (!q.empty()) {
    int t = q.front(), x = t / M, y = t % M;
    q.pop(), l[x][y] = true;
    for (int i = 0; i < 3; i++) {
      int dx = e[x][y][i].first, dy = e[x][y][i].second;
      if (in(dx, dy) && d[dx][dy] > 1 && !l[dx][dy])
        if (--d[dx][dy] <= 1) q.push(idx(dx, dy));
    }
  }
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++) {
      d[i][j] = 0, r[i][j] = l[i][j];
      for (int o = 0; o < 3; o++)
        d[i][j] += in(e[i][j][o].first, e[i][j][o].second);
    }
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      if (!r[i][j] || d[i][j] < 2) q.push(idx(i, j)), d[i][j] = 0;
  while (!q.empty()) {
    int t = q.front(), x = t / M, y = t % M;
    q.pop(), r[x][y] = false;
    for (int i = 0; i < 3; i++) {
      int dx = e[x][y][i].first, dy = e[x][y][i].second;
      if (in(dx, dy) && d[dx][dy] > 1 && r[dx][dy])
        if (--d[dx][dy] <= 1) q.push(idx(dx, dy));
    }
  }
  for (int i = 0; i < M * M; i++) fa[i] = i;
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      if (r[i][j])
        for (int d = 0, x, y; d < 3; d++)
          if (in(x = e[i][j][d].first, y = e[i][j][d].second)) {
            if (!r[x][y]) continue;
            if (fnd(idx(i, j)) == fnd(idx(x, y)))
              return false;
            else
              fa[fnd(idx(i, j))] = fnd(idx(x, y));
          }
  return true;
}
bool ex[M][M];
int bfs(int x, int y) {
  queue<int> q;
  q.push(idx(x, y));
  vector<int> z;
  while (!q.empty()) {
    int t = q.front(), x = t / M, y = t % M;
    q.pop();
    z.push_back(idx(x, y));
    for (int d = 0, dx, dy; d < 3; d++) {
      dx = e[x][y][d].first, dy = e[x][y][d].second;
      if (!in(dx, dy) || ex[dx][dy]) continue;
      if (l[dx][dy]) q.push(idx(dx, dy)), ex[dx][dy] = true;
    }
  }
  if (z.size() == 1) return 1;
  for (int t : z) {
    int x = t / M, y = t % M, c = 0;
    for (int d = 0; d < 3; d++) {
      int dx = e[x][y][d].first, dy = e[x][y][d].second;
      c += col(dx, dy) != col(x, y);
    }
    if (c != 3) return 1;
  }
  return 2;
}
int main() {
  cin >> n;
  for (int i = 1, x, y; i <= n; i++) scanf("%d%d", &x, &y), c[x][y] = true;
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++) {
      e[i][j][0] = pair<int, int>(i + 1, j);
      e[i][j][1] = pair<int, int>(i - 1, j);
      e[i][j][2] = pair<int, int>(i & 1 ? i - 1 : i + 1, i & 1 ? j + 1 : j - 1);
    }
  if (!chk()) return puts("SICK"), 0;
  puts("RECOVERED");
  int all = 0;
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      for (int d = 0; d < 3; d++)
        if (c[i][j]) all += col(e[i][j][d].first, e[i][j][d].second) != c[i][j];
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      if (c[i][j] && !ex[i][j]) all -= 2 * bfs(i, j);
  cout << all;
  return 0;
}
