#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int C,n,m,q,a[N],b[N],x[N],y[N];
int k1,k2,p,v,f;
bool flag;
void init(){
for(int i=1;i<=n;i++)a[i]=x[i];
for(int i=1;i<=m;i++)b[i]=y[i];
}
bool check(){
int i=1,j=1;
if(a[1]>b[1]&&a[n]>b[m])f=1;
else if(a[1]<b[1]&&a[n]<b[m])f=2;
else return false;
while(i<=n&&j<=m){
if(f==1){
if(a[i]>b[j]){
while(a[i]>b[j]){
if(j==m)break;
j++;
}
}else{
while(a[i]<=b[j]){
if(j==0)break;
j--;
}
}
i++;
if(j==0)return false;
}else{
if(a[i]<b[j]){
while(a[i]<b[j]){
if(i==n)break;
i++;
}
}else{
while(a[i]>=b[j]){
if(i==0)break;
i--;
}
}
j++;
if(i==0)return false;
}
}
if(f==1&&i==n+1&&j==m)return true;
if(f==2&&i==n&&j==m+1)return true;
return false;
}
int main(){
cin>>C>>n>>m>>q;
for(int i=1;i<=n;i++)cin>>x[i];
for(int i=1;i<=m;i++)cin>>y[i];
init();
if(check())cout<<"1";
else cout<<"0";
while(q--){
init();
cin>>k1>>k2;
while(k1--){
cin>>p>>v;
a[p]=v;
}
while(k2--){
cin>>p>>v;
b[p]=v;
}
if(check())cout<<"1";
else cout<<"0";
}
return 0;
}