#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
int main()
{
  int N,n,M,m,k,q;
  cin>>N>>n>>M>>m>>k>>q;
  vector<int>a,b;
  while(n--)
  {
      int len,x;
      cin>>len>>x;
      x--;
      while(len--)a.push_back(x);
  }
  while(m--)
  {
      int len,x;
      cin>>len>>x;
      x--;
      while(len--)b.push_back(x);
  }
  vector<vector<int>>nxtn(N,vector<int>(k,1e9)),nxtm(M,vector<int>(k,1e9));
  for(int i=N-1;i>=0;i--)
  {
      nxtn[i]=nxtn[i+1];
      nxtn[i][a[i]]=i;
  }
  for(int i=M-1;i>=0;i--)
  {
      nxtm[i]=nxtm[i+1];
      nxtm[i][b[i]]=i;
  }
  vector<vector<bool>>dp(N+1,vector<bool>(M+1));
  for(int i=N-1;i>=0;i--)
    for(int j=M-1;j>=0;j--)
        for(int p=0;p<k;p++)
    {
        int nwi=nxtn[i][p],nwj=nxtm[j][p];
        if(nwi==1e9||nwj==1e9)continue;
        dp[i][j]=dp[i][j]|!dp[nwi+1][nwj+1];
    }
  while(q--)
  {
      int a,b;
      cin>>a>>b;
      cout<<(!dp[a][b]?"Yes":"No")<<endl;
  }
}
