#include <bits/stdc++.h>
const int Inf = 2e9;
long long LINF = (long long)4e18;
using namespace std;
struct Event {
  int x, y, type;
  bool operator<(const Event &q) const {
    if (x != q.x) return x < q.x;
    if (y != q.y) return y < q.y;
    return type < q.type;
  }
};
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, m, k, t;
  cin >> n >> m >> k >> t;
  vector<Event> a;
  set<pair<int, int>> st;
  for (int i = 0; i < k; i++) {
    int x, y;
    cin >> x >> y;
    st.insert({x, y});
    a.push_back({x, y, -1});
  }
  for (int i = 0; i < t; i++) {
    int x, y;
    cin >> x >> y;
    a.push_back({x, y, i});
  }
  vector<string> ans(t);
  sort((a).begin(), (a).end());
  long long x = 1, y = 1;
  long long waste = 0;
  vector<string> tmp = {"Carrots", "Kiwis", "Grapes"};
  for (int i = 0; i < (int)a.size(); i++) {
    if (a[i].type == -1) {
      waste++;
      continue;
    }
    if (st.count({a[i].x, a[i].y})) {
      ans[a[i].type] = "Waste";
      continue;
    }
    long long now = (a[i].x - 1) * m + a[i].y - 1 - waste;
    ans[a[i].type] = tmp[now % 3];
  }
  for (auto &x : ans) cout << x << "\n";
  return 0;
}
