#include <bits/stdc++.h>
using namespace std;
int n, m, k, t, **mat, nwaste;
struct Waste {
  int i, j;
} vet[1001];
int cmp(const void *a, const void *b) {
  Waste uno = *(Waste *)a;
  Waste due = *(Waste *)b;
  if (uno.i > due.i) return 1;
  if (uno.i < due.i) return -1;
  if (uno.j > due.j) return 1;
  if (uno.j < due.j) return -1;
  return 0;
}
char *str(int x) {
  if (x == 0) return "Carrots";
  if (x == 1) return "Kiwis";
  if (x == 2) return "Grapes";
  return "Waste";
}
int main() {
  int i, j, a, b;
  scanf("%d%d%d%d", &n, &m, &k, &t);
  for (i = 1; i <= k; i++) {
    scanf("%d%d", &a, &b);
    vet[i].i = a;
    vet[i].j = b;
  }
  qsort(vet + 1, k, sizeof(Waste), cmp);
  for (i = 1; i <= t; i++) {
    scanf("%d%d", &a, &b);
    nwaste = 0;
    bool w = false;
    for (j = 1; j <= k; j++) {
      if (vet[j].i < a) {
        nwaste++;
      } else if (vet[j].i == a && vet[j].j <= b) {
        if (vet[j].j == b) {
          w = true;
          break;
        }
        nwaste++;
      } else
        break;
    }
    if (w)
      printf("%s\n", str(-1));
    else
      printf("%s\n", str(((a - 1) * m + b - nwaste - 1) % 3));
  }
  return 0;
}
