#include <bits/stdc++.h>
using namespace std;
vector<int> g[55];
double P[55];
void dfs(int v, double p) {
  for (int i = 0; i < g[v].size(); ++i) {
    dfs(g[v][i], (p * P[v]) / (double)g[v].size());
  }
  P[v] += p;
  if (P[v] > 1.0) P[v] = 1;
}
double Ans;
void dfs_a(int v, double p) {
  Ans += p * (1 - P[v]);
  for (int i = 0; i < g[v].size(); ++i)
    dfs_a(g[v][i], p * (P[v]) / (double)g[v].size());
}
class EagleInZoo {
 public:
  double calc(vector<int> parent, int K) {
    int n = (int)parent.size() + 1;
    for (int i = 0; i < n - 1; ++i) g[parent[i]].push_back(i + 1);
    for (int i = 0; i < n; ++i) P[0] = 0;
    for (int i = 0; i < K - 1; ++i) dfs(0, 1);
    Ans = 0;
    dfs_a(0, 1);
    if (Ans > 1) Ans = 1;
    return Ans;
  }
};
double fff(vector<int> parent, int K) {
  int n = (int)parent.size() + 1;
  for (int i = 0; i < n - 1; ++i) g[parent[i]].push_back(i + 1);
  for (int i = 0; i < n; ++i) P[0] = 0;
  for (int i = 0; i < K - 1; ++i) dfs(0, 1);
  Ans = 0;
  dfs_a(0, 1);
  if (Ans > 1) Ans = 1;
  return Ans;
}
int main() {
  ios::sync_with_stdio(0);
  int n, m, mn, mx;
  cin >> n >> m >> mn >> mx;
  int mn1, mx1, x;
  cin >> mn1;
  mx1 = mn1;
  for (int i = 0; i < m - 1; ++i) {
    cin >> x;
    mn1 = min(mn1, x);
    mx1 = max(mx1, x);
  }
  if (mx1 > mx || mn1 < mn)
    cout << "Incorrect\n";
  else {
    if ((mn < mn1 && mx > mx1 && n - m >= 2) ||
        (((mn < mn1) ^ (mx > mx1)) && n - m >= 1) || (mn == mn1 && mx == mx1))
      cout << "Correct\n";
    else
      cout << "Incorrect\n";
  }
  return 0;
}
