#include <bits/stdc++.h>
using namespace std;
int X, Y, Z, N, M, K;
int L[3], R[3];
int OK[101010][3], NG[101010][3], Q[101010][3];
int ret[101010];
vector<pair<int, int>> query[8];
void solve() {
  int i, j, k, l, r, x, y;
  string s;
  scanf("%d%d%d%d%d%d", &X, &Y, &Z, &N, &M, &K);
  R[0] = R[1] = R[2] = 1;
  L[0] = X;
  L[1] = Y;
  L[2] = Z;
  for (i = 0; i < (N); i++) {
    scanf("%d%d%d", &OK[i][0], &OK[i][1], &OK[i][2]);
    for (j = 0; j < (3); j++)
      L[j] = min(L[j], OK[i][j]), R[j] = max(R[j], OK[i][j]);
  }
  for (i = 0; i < (M); i++) {
    scanf("%d%d%d", &NG[i][0], &NG[i][1], &NG[i][2]);
    int ok = 0;
    for (j = 0; j < (3); j++) {
      if (NG[i][j] < L[j] || R[j] < NG[i][j]) ok = 1;
      if (NG[i][j] > R[j])
        NG[i][j] -= R[j] - L[j];
      else if (NG[i][j] >= L[j])
        NG[i][j] = L[j];
    }
    if (ok == 0) return (void)printf("INCORRECT\n");
    for (j = 0; j < (8); j++) {
      int ok = 1;
      for (x = 0; x < (3); x++) {
        y = (j >> x) & 1;
        if (y == 0 && NG[i][x] > L[x]) ok = 0;
        if (y == 1 && NG[i][x] < L[x]) ok = 0;
      }
      if (ok) {
        if (j & 4)
          query[j].push_back({NG[i][2], i});
        else
          query[j].push_back({Z + 1 - NG[i][2], i});
      }
    }
  }
  for (i = 0; i < (K); i++) {
    scanf("%d%d%d", &Q[i][0], &Q[i][1], &Q[i][2]);
    ret[i] = 1;
    for (j = 0; j < (3); j++) {
      ret[i] &= (L[j] <= Q[i][j] && Q[i][j] <= R[j]);
      if (Q[i][j] > R[j])
        Q[i][j] -= R[j] - L[j];
      else if (Q[i][j] >= L[j])
        Q[i][j] = L[j];
    }
    if (ret[i] == 0) {
      for (j = 0; j < (8); j++) {
        int ok = 1;
        for (x = 0; x < (3); x++) {
          y = (j >> x) & 1;
          if (y == 0 && Q[i][x] > L[x]) ok = 0;
          if (y == 1 && Q[i][x] < L[x]) ok = 0;
        }
        if (ok) {
          if (j & 4)
            query[j].push_back({Q[i][2], 100000 + i});
          else
            query[j].push_back({Z + 1 - Q[i][2], 100000 + i});
        }
      }
    }
  }
  for (i = 0; i < (8); i++) {
    map<signed long long, signed long long> mp;
    mp[0] = 1000000;
    mp[1000000] = 0;
    sort((query[i].begin()), (query[i].end()));
    for (auto& z : query[i]) {
      j = z.second;
      if (j < 100000) {
        x = NG[j][0];
        y = NG[j][1];
        if ((i & 1) == 0) x = X + 1 - x;
        if ((i & 2) == 0) y = Y + 1 - y;
        auto it = mp.lower_bound(x + 1);
        it--;
        if (it->second >= y) {
          mp[x] = y;
          while (1) {
            it = mp.lower_bound(x + 1);
            if (it->second < y) break;
            mp.erase(it);
          }
        }
      } else {
        j -= 100000;
        x = Q[j][0];
        y = Q[j][1];
        if ((i & 1) == 0) x = X + 1 - x;
        if ((i & 2) == 0) y = Y + 1 - y;
        auto it = mp.lower_bound(x + 1);
        it--;
        if (it->second <= y) ret[j] = 2;
      }
    }
  }
  (void)printf("CORRECT\n");
  for (i = 0; i < (K); i++) {
    if (ret[i] == 1) (void)printf("OPEN\n");
    if (ret[i] == 2) (void)printf("CLOSED\n");
    if (ret[i] == 0) (void)printf("UNKNOWN\n");
  }
}
int main(int argc, char** argv) {
  string s;
  int i;
  if (argc == 1) ios::sync_with_stdio(false), cin.tie(0);
  for (i = 0; i < (argc - 1); i++) s += argv[i + 1], s += '\n';
  for (i = 0; i < (s.size()); i++) ungetc(s[s.size() - 1 - i], stdin);
  cout.tie(0);
  solve();
  return 0;
}
