#include <bits/stdc++.h>
using namespace std;
int n, m, k, t;
struct Node {
  int x, y;
  long long total;
  friend bool operator<(Node a, Node b) {
    if (a.x == b.x) return a.y < b.y;
    return a.x < b.x;
  }
} node[100050];
int main() {
  while (scanf("%d %d %d %d", &n, &m, &k, &t) != EOF) {
    int i, j;
    for (i = 0; i < k; i++) {
      scanf("%d %d", &node[i].x, &node[i].y);
      node[i].total = (long long)(node[i].x - 1) * m + (long long)node[i].y;
    }
    node[i].x = n + 1;
    node[i].y = 1;
    node[i].total = (long long)(node[i].x - 1) * m + (long long)node[i].y;
    k++;
    sort(node, node + k);
    while (t--) {
      int x, y;
      scanf("%d %d", &x, &y);
      int ans = 0;
      int flag = 0;
      long long tmp = (long long)(x - 1) * m + (long long)y;
      for (i = 0; i < k; i++) {
        if (node[i].x == x && node[i].y == y) {
          puts("Waste");
          flag = 1;
          break;
        }
        if (tmp < node[i].total) {
          ans = node[i].total - i - 1;
          ans -= (node[i].total - tmp - 1);
          break;
        }
      }
      if (flag == 1) continue;
      ans = ans % 3;
      if (ans == 1)
        puts("Carrots");
      else if (ans == 2)
        puts("Kiwis");
      else
        puts("Grapes");
    }
  }
  return 0;
}
