#include <bits/stdc++.h>
using namespace std;
bool isWaste(vector<int> w, int k) {
  for (auto x : w) {
    if (x == k) return true;
  }
  return false;
}
int countWastesBefore(vector<int> w, int k) {
  return upper_bound(w.begin(), w.end(), k) - w.begin();
}
int main() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  cout.sync_with_stdio(0);
  int n, m, k, t;
  cin >> n >> m >> k >> t;
  vector<int> wastesPos;
  vector<int> wastes[n];
  for (int i = 0; i < k; i++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    wastesPos.push_back(b + a * m);
    wastes[a].push_back(b);
  }
  sort(wastesPos.begin(), wastesPos.end());
  int sequence[n];
  string s[3] = {"Carrots", "Kiwis", "Grapes"};
  for (int kk = 0; kk < t; kk++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    if (isWaste(wastes[a], b)) {
      cout << "Waste\n";
    } else {
      int nTot = (a * m) + b;
      cout << s[(nTot - countWastesBefore(wastesPos, (a * m) + b)) % 3] << "\n";
    }
  }
  return 0;
}
