#include <bits/stdc++.h>
using namespace std;
bool S;
int X, Y, Z, x1, x2, Y1, y2, z1, z2;
int n, m, k, ans[200005], f[200005], cnt;
struct data {
  int x, y, z, id, sign;
} a[200005 * 9], b[200005 * 9];
bool T;
int Rand() { return (rand() << 15) + rand(); }
void work(int x1, int x2, int Y1, int y2, int z1, int z2, int i) {
  int x, y, z;
  scanf("%d%d%d", &x, &y, &z);
  if (x >= x1 && x <= x2 && y >= Y1 && y <= y2 && z >= z1 && z <= z2) {
    ans[i] = -1;
    return;
  }
  x1 = min(x1, x);
  x2 = max(x2, x);
  Y1 = min(Y1, y);
  y2 = max(y2, y);
  z1 = min(z1, z);
  z2 = max(z2, z);
  for (int p = -1; p <= 1; p += 2)
    for (int q = -1; q <= 1; q += 2)
      for (int r = -1; r <= 1; r += 2) {
        int x = p == -1 ? x1 - 1 : x2;
        int y = q == -1 ? Y1 - 1 : y2;
        int z = r == -1 ? z1 - 1 : z2;
        a[++cnt] = (data){x, y, z, i, p * q * r};
      }
}
int cmpx(const data &A, const data &B) {
  if (A.x != B.x) return A.x < B.x;
  return A.id < B.id;
}
int cmpy(const data &A, const data &B) {
  if (A.y != B.y) return A.y < B.y;
  return A.id < B.id;
}
void add(int x, int v) {
  for (; x <= Z; x += x & -x) f[x] += v;
}
int ask(int x) {
  int s = 0;
  for (; x; x -= x & -x) s += f[x];
  return s;
}
void solve(int l, int r) {
  if (l == r) return;
  int mid = (l + r) >> 1;
  int tot = 0;
  for (int i = l; i <= mid; i++)
    if (a[i].id == 0) b[++tot] = a[i];
  for (int i = mid + 1; i <= r; i++)
    if (a[i].id > 0) b[++tot] = a[i];
  sort(b + 1, b + tot + 1, cmpy);
  for (int i = 1; i <= tot; i++)
    if (b[i].id == 0)
      add(b[i].z, 1);
    else
      ans[b[i].id] += b[i].sign * ask(b[i].z);
  for (int i = 1; i <= tot; i++)
    if (b[i].id == 0) add(b[i].z, -1);
  solve(l, mid);
  solve(mid + 1, r);
}
int main() {
  X = Y = Z = n = m = k = 1e5;
  scanf("%d%d%d%d%d%d", &X, &Y, &Z, &n, &m, &k);
  x1 = Y1 = z1 = 5e4;
  scanf("%d%d%d", &x1, &Y1, &z1);
  x2 = x1;
  y2 = Y1;
  z2 = z1;
  for (int i = 2; i <= n; i++) {
    int x, y, z;
    scanf("%d%d%d", &x, &y, &z);
    x1 = min(x1, x);
    x2 = max(x2, x);
    Y1 = min(Y1, y);
    y2 = max(y2, y);
    z1 = min(z1, z);
    z2 = max(z2, z);
  }
  for (int i = 1; i <= m; i++) {
    scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].z);
    if (a[i].x >= x1 && a[i].x <= x2 && a[i].y >= Y1 && a[i].y <= y2 &&
        a[i].z >= z1 && a[i].z <= z2)
      return puts("INCORRECT"), 0;
  }
  cnt = m;
  for (int i = 1; i <= k; i++) work(x1, x2, Y1, y2, z1, z2, i);
  sort(a + 1, a + cnt + 1, cmpx);
  if (cnt) solve(1, cnt);
  puts("CORRECT");
  for (int i = 1; i <= k; i++)
    if (ans[i] == -1)
      puts("OPEN");
    else
      puts(ans[i] ? "CLOSED" : "UNKNOWN");
}
